제출 #970976

#제출 시각아이디문제언어결과실행 시간메모리
970976shezittArt Exhibition (JOI18_art)C++14
50 / 100
16 ms1116 KiB
#include <iostream>
#include <vector>
#include <algorithm>
#include <numeric>
#include <cassert>
#include <queue>

using namespace std;

using ll = long long;

#define int ll
#define fore(a, b, c) for(int a=b; a<c; ++a)
#define sz(x) (int) x.size()
#define all(x) x.begin(), x.end()
#define vi vector<int>
#define ii pair<int,int>
#define F first
#define S second

const int MAXN = 5050;

int n;
ii arr[MAXN];
int sum[MAXN];
int as[MAXN];

signed main(){
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);

    cin >> n;

    fore(i, 0, n){
        cin >> arr[i].F >> arr[i].S;
    }

    sort(arr, arr+n, [](ii u, ii v) -> bool {
        if(u.F == v.F){
            return u.S < v.S;
        }
        return u.F < v.F;
    });

    fore(i, 0, n){
        as[i] = arr[i].F;
    }

    fore(i, 0, n){
        sum[i+1] = sum[i] + arr[i].S;
    }

    int ans = 0;

    fore(i, 0, n){
        fore(j, i, n){
            int res = sum[j+1] - sum[i];
            res -= as[j] - as[i];
            ans = max(ans, res);
        }
    }

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