Submission #588913

#TimeUsernameProblemLanguageResultExecution timeMemory
588913FedShatArt Exhibition (JOI18_art)C++17
100 / 100
212 ms24772 KiB
#include <bits/stdc++.h>

using namespace std;
#define all(c) c.begin(), c.end()
#define rall(c) c.rbegin(), c.rend()
using ll = long long;
constexpr int INF = (numeric_limits<int>::max()) / 2;
constexpr ll INFLL = (numeric_limits<ll>::max()) / 2;

template<class T>
istream &operator>>(istream &is, vector<T> &a) {
    for (auto &i: a) {
        is >> i;
    }
    return is;
}

int main() {
    cin.tie(0)->sync_with_stdio(0);
#ifdef __APPLE__
    freopen("input.txt", "r", stdin);
#endif
    int n;
    cin >> n;
    vector<pair<ll, ll>> v(n);
    for (int i = 0; i < n; ++i) {
        cin >> v[i].first >> v[i].second;
    }
    sort(all(v));
    vector<ll> pref(n + 1);
    for (int i = 1; i <= n; ++i) {
        pref[i] = pref[i - 1] + v[i - 1].second;
    }
    ll ans = -INFLL, mn = INFLL;
    auto add = [&](int i) {
        if (i + 1 < n) {
            mn = min(mn, pref[i] - v[i].first);
        }
    };
    add(0);
    for (int i = 1; i <= n; ++i) {
        // for (int j = 0; j < i; ++j) {
        //     ans = max(ans, pref[i] - pref[j] - (v[i - 1].first - v[j].first));
        // }
        ans = max(ans, pref[i] - v[i - 1].first - mn);
        add(i);
    }
    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...