运用 cnt[ ] 计数 来缩减时间 达到 不超时


#include<bits/stdc++.h>
using namespace std;
#define rep(i,a,n) for(int i=a;i<=n;i++)
typedef long long ll;
int n;
int a[1000010];
ll cnt[1010];
int main() {
    cin >> n;
    rep(i, 1, n) {
        cin >> a[i];

        cnt[a[i]]++;
    }
    ll ans = 0;
    rep(i, 0, 1000) {
        rep(j, i, 1000) {
            ll add;
            if (i == j)    add = (cnt[i] + cnt[i] * (cnt[i] - 1) / 2);
            else    add = cnt[i] * cnt[j];
            ans = ans + add * (ll)abs(i + j - 1000);
        }
    }
    printf("%lld\n", ans);
    return 0;
}