Submission #1322566

#TimeUsernameProblemLanguageResultExecution timeMemory
1322566resululubeyovArt Exhibition (JOI18_art)C++20
100 / 100
134 ms20056 KiB
#pragma GCC optimize("O3")
#include <bits/stdc++.h>
using namespace std;

#define endl '\n'
#define int long long
#define F first
#define S second
#define pii pair<int, int>
#define pic pair<int, char>
#define pci pair<char, int>
#define pipii pair<int, pair<int, int>>
#define all(v) v.begin(), v.end()
#define rall(v) v.rbegin(), v.rend()
#define yes() cout << "YES" << endl
#define no() cout << "NO" << endl
#define gcd __gcd

int lcm(int a, int b){
    return a / gcd(a , b) * b;
}
bool isPalindrome(string s){
    string x = s;
    reverse(x.begin(), x.end());
    return x == s;
}
bool isPrime(int n){
    if(n < 2) return false;
    if(n == 2) return true;
    if(n % 2 == 0) return false;
    for(int i = 3;i <= sqrt(n);i += 2){
        if(n % i == 0) return false;
    }
    return true;
}
int dx[] = {1, -1, 0, 0};
int dy[] = {0, 0, 1, -1};
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
signed main() {
    //freopen("input.txt","r",stdin);
    //freopen("output.txt","w",stdout);

    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
    
    int n;
    cin >> n;
    int a[n + 1], b[n + 1];
    vector<pii> vt;
    for(int i = 1;i <= n;i++){
        cin >> a[i] >> b[i];
        vt.push_back({a[i], b[i]});
    }
    sort(all(vt));
    int pref[n + 1];
    pref[0] = 0;
    for(int i = 1;i <= n;i++) pref[i] = pref[i - 1] + vt[i - 1].S;
    int mn = LLONG_MAX;
    int ans = 0;
    for(int i = 1;i <= n;i++){
        mn = min(mn, pref[i - 1] - vt[i - 1].F);
        ans = max(ans, pref[i] - vt[i - 1].F - mn);
    }
    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...