Submission #2423

#TimeUsernameProblemLanguageResultExecution timeMemory
2423hana5505지우개 (GA4_eraser)C++98
13 / 100
25 ms4012 KiB
#include<stdio.h>
int mod=1000000007;
long long ar[100001];
long long aa[100001];
long long sum1[100001];
long long sum2[100001];
int main()
{
	long long s=0;
	int n,i,size=0;

	scanf("%d",&n);

	for(i=1;i<=n;i++){
		scanf("%lld",&ar[i]);
		aa[(int)ar[i]]++;
	}

	for(i=1;i<=100000;i++){
		if(aa[i])
			ar[++size]=i;
	}

	for(i=1;i<=size;i++){
		sum1[i]=(sum1[i-1]+(ar[i]*aa[ar[i]])%mod)%mod;
		sum2[i]=(sum2[i-1]+((( (ar[i]*aa[ar[i]])%mod )* (ar[i]*aa[ar[i]])%mod))%mod)%mod;
	}

	for(i=1;i<=size-2;i++){
		s+=(((aa[(int)ar[i]]*ar[i])%mod)*((((((sum1[size]-sum1[i]+mod)%mod)*((sum1[size]-sum1[i]+mod)%mod)-(sum2[size]-sum2[i]+mod)%mod)%mod)/2)%mod))%mod;
		s=s%mod;
	}

	printf("%lld",s);
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...