제출 #1278114

#제출 시각아이디문제언어결과실행 시간메모리
1278114toplion7Art Exhibition (JOI18_art)C++20
100 / 100
135 ms12216 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int inf = 1e18 + 7;
const int MOD = 1000000007;
const int MOD1 = 998244353;
const int MOD2 = 1e9 + 9;
const int MAXXX = 1e3 + 5;
const int MAXXXx = 1e3 + 5;
const int OFFSET = 200;
void Make_set(vector<int>& v)
{
    set<int> s(v.begin(), v.end());
    v.assign(s.begin(), s.end());
}
int Pow(int n, int k, int mod) 
{
    int res = 1;
    while (k > 0) 
    {
        if (k % 2 == 1) 
        {
            res = (res * n) % mod;
        }
        n = (n * n) % mod;
        k /= 2;
    }
    return res;
}
vector<pair<int, vector<int>>> dp(MAXXX);
int x[MAXXX];
signed main() 
{
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int T ;
    // cin >> T;
    T = 1;
    for (int K = 0; K < T; K++)
    {
        int n;
        cin >> n;
        vector<pair<int, int>> v(n+1);
        for(int i = 0; i < n; i++) cin >> v[i].first >> v[i].second;
        int pr[n], ans = 0, mn = 0;
        sort(v.begin(), v.end());
        pr[0] = 0;
        for(int i = 1; i <= n; i++)
        {
            pr[i] = pr[i - 1] + v[i].second;
        }
        for(int r = 1; r <= n; r++)
        {
            ans = max(ans , pr[r] - v[r].first - mn);
            mn = min(mn, pr[r - 1] - v[r].first);
            ans = max(ans, v[r].second);
        }
        cout << ans;
        
    }
    return 0;
}
/*
3 
2 3
11 2 
4 5

6 
4 1 
1 5
10 3
9 1
4 2
5 3
*/
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...