悬关 求调
查看原帖
悬关 求调
974277
水星湖psgqwq楼主2023/12/2 14:01
#include<bits/stdc++.h>
using namespace std;
int cnt[5005],mod = 1e9+7,maxn=0;

int main()
{
	int n,ans=0;
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		int x;
		cin>>x;
		cnt[x]++;
		maxn = max(maxn,x);
	}
	for(int i=2;i<=maxn;i++)
	{
		int tmp = (cnt[i]*cnt[i]-cnt[i])/2%mod;
		if(tmp)
		{
			for(int j=1;j<ceil(i*1.0/2);j++)
				ans = (ans + (cnt[j]*cnt[i-j])*tmp)%mod;
			if(i*1.0/2==i/2)
				ans = ans + (cnt[i/2]*cnt[i/2]-cnt[i/2])/2%mod;
		}
//		cout<<i<<" "<<ans<<endl;
	}
	cout<<ans;
	return 0;
}
2023/12/2 14:01
加载中...