P7176题解

· · 题解

题面

首先,我们看完题面后,先来进行一个模拟。

我们让 Ante 对所需时间最长的团队进行演说,在这个时间里,Goran 向其他团队演说。这样就会有两种情况:

那么,Ante 给时间最长的团队演说玩后,Goran 还要来这样一次,时间一共是 2\times max_t

这样的话,时间就能拼接在一起,一共需要 \sum\limits_{i=1}^nt_i

代码:

#include<bits/stdc++.h>
using namespace std;
long long int n,x,maxn,k;//不开long long见祖宗
int main()
{
    cin>>n;
    while(n--){
        cin>>x;
        maxn=max(x,maxn);//最大值
        k+=x;//和
    }
    if(maxn>k-maxn)cout<<maxn*2;//按照上面进行判断
    else cout<<k;
    return 0;
}