Submission #1264069

#TimeUsernameProblemLanguageResultExecution timeMemory
1264069piolkArt Exhibition (JOI18_art)C++20
100 / 100
313 ms12088 KiB
#include <bits/stdc++.h>
using namespace std;

using ll=long long;

ll compute(ll sum,ll min,ll max){
    return sum-(max-min);
}

int main(){
    int n;
    cin>>n;

    vector<pair<ll,ll>> paintings(n);

    for (int i=0;i<n;i++){
        ll a,b;
        cin>>a>>b;
        paintings[i]={a,b};
    }

    sort(paintings.begin(),paintings.end());

    vector<ll> prefix(n);
    prefix[0]=paintings[0].second;

    for (int i=1;i<n;i++) prefix[i]=prefix[i-1]+paintings[i].second;

    ll ans=LLONG_MIN;
    ll minn=LLONG_MAX;

    for (int i=0;i<n;i++){
        if (i==0) minn=min(minn,-paintings[i].first);
        else minn=min(minn,prefix[i-1]-paintings[i].first);

        ans=max(ans,prefix[i]-paintings[i].first-minn);
    }

    cout<<ans;

    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...