求助全RE
查看原帖
求助全RE
803885
_8008008楼主2023/8/9 08:14
#include<iostream>
#define mod 100000007
using namespace std;
long long C(int n,int m){
	//在n个中选m个不重复的方案 
	long long a1=1,a2=1,a3=1;
	for(int i=1;i<=n;i++)a1*=i; 
	for(int i=1;i<=m;i++)a2*=i; 
	for(int i=1;i<=n-m;i++)a3*=i; 
	return a1/(a2*a3);
}
long long a[5001],Min=0x7fffffff,Max=0,n,ans=0;
int main(){
	cin>>n;
	for(long long i=0;i<n;i++){
		int x;cin>>x;
		if(x>Max)Max=x;
		if(x<Min)Min=x;
		a[x]++;
	}
	for(long long i=Min;i<=Max;i++){
		if(a[i]>=2&&i!=1){
			int sum=a[i];
			for(int j=Min;j<=i/2;j++){
				if(i-j==j)sum+=C(a[j],2);
				else if(a[j]>=1&&a[i-j]>=1)sum+=C(a[j]*a[i-j],1);
			}
			if(sum>=3)ans+=C(sum,3);ans%=mod;
		}
	}
	cout<<ans%mod;
}

2023/8/9 08:14
加载中...