제출 #1094130

#제출 시각아이디문제언어결과실행 시간메모리
1094130Lakshya108Art Exhibition (JOI18_art)C++14
100 / 100
132 ms28756 KiB
// https://oj.uz/problem/view/JOI18_stove
// OI\JOI18\JOI18-art.pdf

#include <bits/stdc++.h>
using namespace std;

// Macros
#define pb          push_back
#define pf          push_front
#define ff          first
#define ss          second
#define all(v)      v.begin(), v.end()
#define rall(v)     v.rbegin(), v.rend()

// #define rep(i, x, n)   for(int i = x; i < n; ++i)
// #define rrep(i, x, n)  for(int i = x; i >= n; --i)

// Read and Print
#define read(a, n) for(ll i = 0; i < n; ++i) cin >> a[i];
#define print(a, n) for(ll i = 0; i < n; ++i){ cout << a[i] << " ";} cout << "\n";
#define endl "\n"
#define sp " "

// Typedefs
typedef long long ll;
typedef long double ld;
typedef pair <ll, ll> pii;
typedef vector <ll> vi;
typedef vector <vector <ll>> vvi;
using vec = vector<int>;

// Constants
const ll mxn = 1e6 + 5;
const ll mod = 1e9 + 7;

// Solve

void solve() {
    int n;  cin>>n;
    vector<pii> a(n+1);
    for(int i = 0; i<n; i++){
        cin>>a[i].ff>>a[i].ss;
    }    
    sort(all(a));
    ll ans = 0;
    vi sum(n+1, 0), mx(n+1, 0);
    // sum[0]=0;
    // mx[0]=0;
    for(int i = 1; i<=n; i++){
        sum[i]=sum[i-1]+a[i].ss;
        mx[i]=max(mx[i-1], a[i].ff-sum[i-1]);
        ans = max(ans, sum[i]-a[i].ff+mx[i]);
    }
    cout<<ans<<endl;
}

int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0); cout.tie(0);
    solve();

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