求助,全WA,但是算法好像对的
查看原帖
求助,全WA,但是算法好像对的
348254
AK007楼主2020/10/28 21:51
#include<bits/stdc++.h>
#define ll long long
const int mod=1e9+7;
using namespace std;
ll n,ans;
ll a[100010];
map <ll,ll> mp;
ll C(ll a,ll b){
	ll cnt=1,k=a-b+1;
	for(ll i=a;i>=k;i--){
		cnt*=i;
		if(b==1) cnt=cnt%mod;
		while(cnt%b==0&&b>=2){
			cnt=cnt/b;
			b--;
		}
	}
	//printf("%lld\n",cnt);
	return cnt;
}
int main(){
	scanf("%lld",&n);
	for(ll i=1;i<=n;i++){
		scanf("%lld",&a[i]);
		mp[a[i]]++;
	} 
	for(ll i=1;i<=n;i++){
		if(mp[a[i]]>=2){
			if(mp.find(a[i]*2)!=mp.end()){
				if(mp[a[i]*2]>=2) ans=((ans%mod)+(C(mp[a[i]],2)%mod)*(C(mp[a[i]*2],2)%mod))%mod;
			}
			mp[a[i]]--;
		}
	}
	printf("%lld",ans%mod);
	return 0;
}
2020/10/28 21:51
加载中...