Submission #378248

#TimeUsernameProblemLanguageResultExecution timeMemory
378248jlallas384Art Exhibition (JOI18_art)C++17
100 / 100
825 ms48468 KiB
#include <bits/stdc++.h>
using namespace std;
using ll = long long;

int main(){
    int n;
    cin >> n;
    vector<pair<ll,int>> a(n);
    for(auto &[sz,val]: a){
        cin >> sz >> val;
    }
    sort(a.begin(), a.end());
    vector<ll> b(n);
    multiset<ll> ms;
    ll sum = 0;
    for(int i = 0; i < n; i++){
        sum += a[i].second;
        ll x = sum - (a[i].first - a[0].first);
        b[i] = x;
        ms.insert(x);
    }
    ll ans = *ms.rbegin(), pref = 0;
    for(int i = 1; i < n; i++){
        ms.erase(ms.find(b[i-1]));
        pref -= a[i-1].second;
        ans = max(ans, *ms.rbegin() + pref + (a[i].first - a[0].first));
    }
    cout << ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...