我是靠谱客的博主 忧虑斑马,最近开发中收集的这篇文章主要介绍牛客小白月赛2 J.美牛客小白月赛2 J.美,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

牛客小白月赛2 J.美

题目链接

题目描述

最后,Sεlιнα(Selina) 开始了选美大赛。 一如既往地,Sεlιнα 想最大化自己的愉悦度。她品味十分独特,对“美”有自己独到的见解。 她给每位经过层层选拔来到这一关的参赛男友都定义了一个帅气值 RR 。Sεlιнα 需要将这些参赛者排成一排,她对于这个排列的“美”值的定义是:

B e A u T i F u L = ∑ i = 1 n ( R i − R i − 1 ) mathrm{BeAuTiFuL}=sum_{i=1}^n(R_i-R_{i-1}) BeAuTiFuL=i=1n(RiRi1)

其中 R i R_i Ri 表示排列中第 i i i 个人的帅气值。特别地,当 i = 1 i=1 i=1 时,有 R i − 1 = R n R_{i-1} = R_{n} Ri1=Rn
她依旧想使自己获得最大的愉悦值,所以她要使这个排列的 B e A u T i F u L mathrm{BeAuTiFuL} BeAuTiFuL 值尽可能地大。聪明的你,快来告诉 Sεlιнα,这个最大的值是多少。

输入描述:

第一行一个整数 N N N ,表示有 N N N 个男友。
第二行 N N N 个整数,第 i i i 个数表示值 R i R_i Ri

输出描述:

输出共一行,一个整数,表示最大的 B e A u T i F u L mathrm{BeAuTiFuL} BeAuTiFuL 值。

示例1

输入

5
7 3 15 12 8

输出

34

示例2

输入

7
-2 0 8 9 -5 3 10

输出

68

简单排序,不难发现只要一大一小交错排得到的答案一定是最大的,AC代码如下:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e5+5;
ll a[N],b[N];
int main()
{
    int n;
    cin>>n;
    for(int i=0;i<n;i++) cin>>a[i];
    sort(a,a+n);
    ll sum=0,id=0;
    for(int i=0;i<n;i++){
        if(i!=n-i-1) b[id++]=a[i],b[id++]=a[n-i-1];
        else b[id++]=a[i];
    }
    for(int i=0;i<n;i++){
        if(i==0) sum+=abs(b[0]-b[n-1]);
        else sum+=abs(b[i]-b[i-1]);
    }
    cout<<sum;
}

最后

以上就是忧虑斑马为你收集整理的牛客小白月赛2 J.美牛客小白月赛2 J.美的全部内容,希望文章能够帮你解决牛客小白月赛2 J.美牛客小白月赛2 J.美所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部