Submission #1109134

#TimeUsernameProblemLanguageResultExecution timeMemory
1109134vjudge1Art Exhibition (JOI18_art)C++17
100 / 100
146 ms31284 KiB
#include "bits/stdc++.h"
using namespace std;
 
const int maxn = 5e5 + 5;
int n;
pair<long long, int> a[maxn];
long long pref[maxn];
 
void solve() {
    cin >> n;
    for(int i = 1; i <= n; ++i) {
        cin >> a[i].first >> a[i].second;
    }
    sort(a + 1, a + n + 1);
    long long ans = 0;
    for(int i = 1; i <= n; ++i) {
        pref[i] = pref[i - 1] + a[i].second;
        ans = max(ans, 1ll * a[i].second);
    }
    priority_queue<long long, vector<long long>, greater<long long>> pq;
    for(int i = 1; i <= n; ++i) {
        if(!pq.empty()) {
            long long top = pq.top();
            ans = max(ans, pref[i] - a[i].first - top);
        }
        pq.push(pref[i - 1] - a[i].first);
    }
    
    cout << ans;
}
signed main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    
    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...