Submission #699344

#TimeUsernameProblemLanguageResultExecution timeMemory
699344AmrTArt Exhibition (JOI18_art)C++14
0 / 100
0 ms212 KiB
#include <bits/stdc++.h>
#define lop(i,a,b) for(ll i = a; i < b; i++)
#define alop(i,v) for(auto i: v)
#define ll long long
#define endl "\n"
//#define ll int
#define yes "YES"
#define no "NO"
#define elif else if
#define sp ' '
#define cor(d) (d == 1 ? "yes":"no")
#define all(v) v.begin(),v.end()
#define subst(s,i,j) s.substr(i,i+j-1);
#define pb push_back
int mod = 1e9 + 7;
using namespace std;

ll fpow(ll n, ll p){
    if(p == 0) return 1;
    if(p == 1) return n;
    ll res = 1;
    if(p%2){ 
        res *= n;
        p--;
    }
    ll pn = fpow(n, p/2);
    res *= pn * pn;
    return res;
}


int main(){
    ll n, t1, t2; cin >> n;
    ll arr[n];
    vector<pair<int,int>> v, m;

    lop(i,0,n){
        cin >> t1 >> t2;
        v.pb({t1,t2});
    }
    sort(all(v));
    int i = 0;
    alop(it,v){
        if(i == 0) arr[0] = it.second;
        else arr[i] = it.second + arr[i-1];
        i++;
    }
    ll mx = -1e9;
    for(int i = 1; i <= n; i++){
        for(int j = 0; j < n-i; j++){
            ll sum;
            if(j == 0) sum = arr[i+j];
            else sum = arr[i+j] - arr[j-1];
            mx = max(mx, sum - (v[i+j].first - v[j].first));
        }
    }
    mx = max(mx, arr[n-1] - (v[n-1].first - v[0].first));
    cout << mx;
    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...