Submission #8574

#TimeUsernameProblemLanguageResultExecution timeMemory
8574angel지우개 (GA4_eraser)C++98
6 / 100
24 ms1868 KiB
#include <stdio.h>
#include <algorithm>
#define mod 1000000007
#define inv 166666668
int n;
int a[100005], s[100005];
int f(long long a, long long b, long long c)
{
	a %= mod, b %= mod, c %= mod;
	return (((a * b) % mod) * c) % mod;
}
int main()
{
	long long ans = 0, sum = 0;
	scanf("%d", &n);
	for(int i=0; i<n; i++) {
		scanf("%d", &a[i]);
		sum = (sum + a[i]) % mod;
		s[a[i]]++;
	}
	std::sort(a, a + n);
	ans = f(sum, sum, sum);
	for(int i=1; i<=100000; i++) {
		ans = (ans - (f(s[i], s[i], s[i]) * f(i, i, i)) % mod) % mod;
		ans = (ans + mod) % mod;
		ans = (ans - 3 * f(f(s[i], s[i], sum - i * s[i]), i, i)) % mod;
		ans = (ans + mod) % mod;
	}
	printf("%lld\n", (ans * inv) % mod);
	return 0;
}
#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...