# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
2402 | alephnull | 지우개 (GA4_eraser) | C++98 | 28 ms | 2568 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <cstdio>
#include <algorithm>
#include <vector>
#define MOD 1000000007
using namespace std;
typedef long long ll;
typedef vector<ll> vll;
typedef vll::iterator vlli;
int main() {
int n;scanf("%d",&n);
vll a(n,0);
for(int i=0;i<n;i++){
long long tmp;
scanf("%lld",&tmp);a[i]=tmp;
}
sort(a.begin(),a.end());
vll psum(n,0);
psum[0]=a[0];
for(int i=1;i<n;i++)psum[i]=(psum[i-1]+a[i])%MOD;
vll ppsum(n,0);
for(int i=n-2;i>=0;i--){
vlli hi= upper_bound(a.begin(),a.end(),a[i]+1);
int idx=hi-a.begin()-1;
if(a[idx]==a[i])ppsum[i]=ppsum[i+1];
else{ppsum[i]=(ppsum[i+1]+(a[i]*((MOD+psum[n-1]-psum[idx-1])%MOD))%MOD)%MOD;}
}
ll ans=0;
for(int i=0;i<n;i++){
vlli hi= upper_bound(a.begin(),a.end(),a[i]+1);
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |