Submission #1321349

#TimeUsernameProblemLanguageResultExecution timeMemory
1321349spetrArt Exhibition (JOI18_art)C++20
100 / 100
140 ms25468 KiB
#include <bits/stdc++.h>

using namespace std;

#define ll long long
const ll mmod = 998244353;  
#define vl vector<long long>
#define vll vector<vector<long long>>
#define pl pair<long long, long long>
#define vb vector<bool>

int main(){
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    ll n;
    cin >>n;
    vector<pl> nums;
    for (ll i= 0; i < n; i++){
        ll a, b;
        cin >>a >> b;
        nums.push_back({a,b});
    }

    sort(nums.begin(), nums.end());
    vl p(n+1,0);
    for (ll i = 0; i < n; i++){
        p[i+1] = p[i] + nums[i].second;
    }

    vl v1, v2;
    for (ll i = 0; i < n; i++){
        v1.push_back(-nums[i].first + nums[i].second + p[i]);
        v2.push_back(nums[i].first + nums[i].second - p[i+1]);
    }

    ll maximum = 0;
    ll optimum = 0;
    for (ll i = 0; i < n; i++){
        optimum = max(optimum, nums[i].second);
    }
    for (ll i = 0; i < n; i++){
        optimum = max(optimum, v1[i]+maximum);
        maximum = max(maximum, v2[i]);
    }
    cout << optimum << "\n";



    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...