Submission #77125

#TimeUsernameProblemLanguageResultExecution timeMemory
77125VardanyanArt Exhibition (JOI18_art)C++14
100 / 100
299 ms212960 KiB
#include <bits/stdc++.h>
using namespace std;
const int N = 500*1000+7;
pair<long long,long long> a[N];
long long pref[N];
int main(){
    int n;
    scanf("%d",&n);
    for(int i = 1;i<=n;i++){
            scanf("%lld%lld",&a[i].first,&a[i].second);
    }
    sort(a+1,a+1+n);
    long long ans = 0;
    long long mxdif = -1000000000000005;
    long long s = 0;
    for(int i = 1;i<=n;i++){
        pref[i] = pref[i-1]+a[i].second;
        s+=a[i].second;
        long long u = s-(a[i].first-a[1].first);
        ans = max(ans,u);
        mxdif = max(mxdif,(a[i].first-a[1].first)-pref[i-1]);
        u+=mxdif;
        ans = max(ans,u);
        //cout<<mxdif<<endl;
    }
    printf("%lld\n",ans);
    return 0;
}

Compilation message (stderr)

art.cpp: In function 'int main()':
art.cpp:8:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d",&n);
     ~~~~~^~~~~~~~~
art.cpp:10:18: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
             scanf("%lld%lld",&a[i].first,&a[i].second);
             ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...