Why WA all?
查看原帖
Why WA all?
588448
封禁用户楼主2022/10/1 23:31
#include <cstdio>
#define ll long long
void in(ll &x){
	char c=getchar();
	int f=0;
	while(c<'0'||c>'9') f=(c=='-'),c=getchar();
	for(x=0;c>='0'&&c<='9';c=getchar())
		x=x*10+(c-'0');
	if(f) x*=-1;
	return;
}
ll v[1000005];
const ll mod=1e9+7;

ll two(ll x){
	return (x*(x-1)/2)%mod;
}
ll mx(ll a,ll b){
	return a>b?a:b;
}
int main(){
	ll n,x,max=0;
	in(n);
	for(int i=1;i<=n;++i){
		in(x);
		++v[x];
		max=mx(max,x);
	}
	ll ans=0;
	
	for(int i=2;i<=max;++i)
	 if(v[i]>1){
			ll k=two(v[i]);
			for(int j=1;j<i/2;++j) if(v[j]&&v[i-j])ans=(ans+k*v[j]*v[i-j]%mod)%mod;
			if(i%2==0) if(v[i/2]>1)ans=(ans+k*two(v[i/2]))%mod;
		}
	
	printf("%lld\n",ans);
	return 0;
}
2022/10/1 23:31
加载中...