大佬求救!
查看原帖
大佬求救!
1036281
mayisang楼主2023/9/29 11:15
#include<bits/stdc++.h>
using namespace std;
const int mod=1000000007;
long long n,a,A[5000010],Max=-1,sum;
long long C(long long n){
	long long sum=1;
	sum*=n,sum%=mod;
	sum*=(n-1),sum%=mod;
	sum*=(n-2),sum%=mod;
	return sum/6;
}
int main(){
	scanf("%d",&n);
	for(int i=0;i<n;i++){
		scanf("%d",&a);
		A[a]++;
		Max=max(Max,a);
	}
	for(int i=1;i<=Max;i++){
		if(A[i]){
			for(int j=1;j<=Max;j++){
				if(A[j]&&i+j<=Max&&book[i][j]==0){
					if(j==i){
						A[i+j]+=A[i]*(A[j]-1)/2;
						A[i+j]%=mod;
					}
					else{
						A[i+j]+=A[i]*A[j];
						A[i+j]%=mod;
					}
				}
			}
		}
	}
	for(int i=1;i<=Max;i++){
		if(A[i]>=3){
			sum+=C(A[i]);
		}
		sum%=mod;
	}
	printf("%d\n",sum);
	return 0;
}
2023/9/29 11:15
加载中...