Submission #2184

#TimeUsernameProblemLanguageResultExecution timeMemory
2184jwvg0425지우개 (GA4_eraser)C++98
100 / 100
24 ms3620 KiB
#include<stdio.h> #include<stdlib.h> #include<algorithm> #include<vector> using namespace std; #define MOD 1000000007 int n,r[100005]; long long int a[100005]; long long int v[100005],s[100005]; int main() { int i,j,k,t=0; scanf("%d",&n); for(i=0;i<n;i++)scanf("%lld",&a[i]); sort(&a[0],&a[n]); s[0]=a[0]; r[0]=1; for(i=1;i<n;i++)s[i]=s[i-1]+a[i]; for(i=0;i<n;i++) { for(j=r[i];;j++) { if(a[j]!=a[i]) { r[i]=r[i+1]=j; break; } } } for(j=n-1;j>0;j--) { k=r[j]; if(k<n) { v[j]=(v[j+1]+(s[n-1]-s[k-1])*(long long int)a[j])%MOD; } } for(i=0;i<n-2;i++) { if(r[i]<n) { t=(t+v[r[i]]*(long long int)a[i])%MOD; } } printf("%lld",t); }
#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...