제출 #1939

#제출 시각아이디문제언어결과실행 시간메모리
1939mh5664지우개 (GA4_eraser)C++98
0 / 100
16 ms3228 KiB
#include <stdio.h> #include <algorithm> using namespace std; const int MAXN = 100000; const long long int mod = 1000000007; long long int data[MAXN + 1]; long long int sum[MAXN + 1]; long long int sum2[MAXN + 1]; int main () { int n; scanf ("%d", &n); for (int i = 0; i < n; ++i) { scanf ("%lld", &data[i]); } sort (data, data + n); sum[0] = data[0]; for (int i = 1; i < n; ++i) { sum[i] = (sum[i - 1] + data[i]) % mod; } for (int i = 0; i < n - 1; ++i) { if (data[i] == data[i + 1]) continue; else { long long int r; int s; r = ((sum[n - 1] - sum[i]) * data[i]) % mod; s = i; while (s >= 0) { if (data[s] != data[i]) break; sum2[s] = r; --s; } } } long long int sol = 0; for (int i = 0; i < n - 2; ++i) { if (data[i] == data[i + 1]) continue; else { long long int r; int s; r = (sum2[i + 1] * data[i]) % mod; s = i; while (s >= 0) { if (data[s] != data[i]) break; sol = (sol + r) % mod; --s; } } } printf ( "%lld", sol); 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...