Submission #1270904

#TimeUsernameProblemLanguageResultExecution timeMemory
1270904hamaseArt Exhibition (JOI18_art)C++20
100 / 100
436 ms12084 KiB
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define pll pair<ll, ll>
#define fi first
#define se second

ll N, ps[500100];
pll a[500100];

int main() {
    cin >> N;
    for (int i = 1; i <= N; i++) {
        cin >> a[i].fi >> a[i].se;
    }
    sort(a+1, a+N+1);
    ps[0] = 0;
    for (int i = 1; i <= N; i++) {
        ps[i] = ps[i-1] + a[i].se;
    }

    ll ans = a[1].se;
    ll start = 1;
    for (int i = 1; i <= N; i++) {
        if (ps[i]-ps[start-1] - (a[i].fi-a[start].fi) >= a[i].se) {
            ans = max(ans, ps[i]-ps[start-1] - (a[i].fi-a[start].fi));
        } else {
            ans = max(ans, a[i].se);
            start = i;
        }
    }

    cout << ans << endl;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...