求助CF C离奇爆炸
  • 板块灌水区
  • 楼主Inf_Love
  • 当前回复16
  • 已保存回复16
  • 发布时间2021/10/10 19:07
  • 上次更新2023/11/4 04:08:33
查看原帖
求助CF C离奇爆炸
436011
Inf_Love楼主2021/10/10 19:07

这题有啥坑吗,一直调不过去,还是说思路就假了?

#include <iostream>
#include <map>
using namespace std;
#define int long long
signed main(){
    int t;
    cin >> t;
    while(t--){
        map<int,int> m;
        int n,a[200010];
        cin >> n;
        int ans = 0;
        for(int i = 1;i <= n;i++){
            cin >> a[i];
            ans += a[i];
        }
        if(ans == 0){
            cout << n * (n-1) / 2 << endl;
            continue;
        }
        if(ans % n != 0){
            cout << 0 << endl;
            continue;
        }
        int sum = ans;
        ans /= n;
        for(int i = 1;i <= n;i++){
            int c = a[i] - ans;
            m[ans - c]++;
        }
        int t2 = 0;
        for(int i = 1;i <= n;i++){
            t2 += m[a[i]];
            if(a[i] == ans)t2--;
        }
        cout << t2 / 2 << endl;
    }
    return 0;
}
2021/10/10 19:07
加载中...