WA0求助
查看原帖
WA0求助
49101
DG_KONJ楼主2024/3/19 21:33
#include<bits/stdc++.h>
using namespace std;
const int MAXN = 5E3 + 5, mo = 1e9 + 7;
long long bin[MAXN], maxa = 0, mina = 5e3, ans = 0;
int main()
{
	int n; cin >> n; 
	while(n --)
	{
		int t; cin >> t;
		bin[t] ++;
		if(t > maxa) maxa = t;
		if(t < mina) mina = t;
	}
	for(int i = maxa; i >= mina; i --)
	{
		if(bin[i] >= 2)
		{
			long long a = (((bin[i]-1) * bin[i])>>1) % mo;
			long long b = 0;
			for(int j = mina; j <= i>>1; j++)
			{
				if(bin[i-j]&&bin[j])
				{
					if(i-j ==j) b = (b + (bin[j]*(bin[j]-1))>>1%mo)%mo;
					else b = (b +bin[j]*bin[i-j]%mo)%mo;
				}
				
			}
			ans = (ans+a*b%mo)%mo;
		}
	}
	cout<<ans;
}
2024/3/19 21:33
加载中...