Submission #1323788

#TimeUsernameProblemLanguageResultExecution timeMemory
1323788_airaArt Exhibition (JOI18_art)C++20
100 / 100
133 ms19776 KiB
#include<bits/stdc++.h>
using namespace std;

typedef long long ll;
#define int ll
#define endl '\n' 
#define pb push_back
#define ff first 
#define ss second
#define all(a) a.begin(),a.end()
#define gcd(a,b) __gcd(a,b)
#define lcm(a,b) (a*(b/gcd(a,b)))
#define fios(); ios_base::sync_with_stdio(0);cin.tie(0);
#define file(); freopen("input.txt","r",stdin);freopen("output.txt","w",stdout);

void solve(){
    int n; cin>>n;
    vector<pair<int,int>> v(n+1,{0,0});

    for(int i=1;i<=n;i++){
        int x,y; cin>>x>>y;
        v[i]={x,y};
    }
    sort(all(v));

    //for(int i=1;i<=n;i++) cout<<v[i].ff<<' '; cout<<endl;
    //for(int i=1;i<=n;i++) cout<<v[i].ss<<' '; cout<<endl;

    int pre[n+1]={0};
    int c[n+1]={0};
    
    for(int i=1;i<=n;i++){
        pre[i]=pre[i-1]+v[i].ss;
        c[i]=pre[i]-v[i].ff;
    }

    int sufmx[n+1]={0};
    int mx=-1e16;
    for(int i=n;i>0;i--){
        mx=max(mx,c[i]);
        sufmx[i]=mx;
    }
    int ans=-1;
    for(int i=1;i<=n;i++){
        int x=v[i].ff-pre[i-1];
        ans=max(ans,x+sufmx[i]);
    }
    cout<<ans<<endl;
    return;
}

int32_t main(){
    fios();
    solve();
    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...