专栏文章

题解:CF2014C Robin Hood in Town

CF2014C题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@miqlot4h
此快照首次捕获于
2025/12/04 06:50
3 个月前
此快照最后确认于
2025/12/04 06:50
3 个月前
查看原文

题目传送门:Robin Hood in Town

思路:

这道题很简单,如果 N2N≤2 就输出 1-1,否则先排序,排好序之后找到数组中正中间的一个数,它就是平均数,最后,我们用这个平均数去倒推就行了。
本题千万不要忘了开 long long!

AC Code:

CPP
#include<bits/stdc++.h>
#define ll long long
using namespace std; 
ll a[200010],t,n,sum,p,m;
int main(){
    cin>>t;
    while(t--){
        cin>>n;
        sum=0;
        for(int i=1;i<=n;i++){
            cin>>a[i];
            sum+=a[i];
        }
        if(n<=2){
            cout<<"-1\n";continue;
        }
        sort(a+1,a+1+n);
        p=a[n/2+1];
        m=p*2*n+1;
        ll ck=0;
        cout<<max(ck,m-sum)<<endl;
    }
}

评论

0 条评论,欢迎与作者交流。

正在加载评论...