Submission #924821

#TimeUsernameProblemLanguageResultExecution timeMemory
924821SalihSahinArt Exhibition (JOI18_art)C++17
100 / 100
173 ms36748 KiB
#include<bits/stdc++.h>
#define pb push_back
#define int long long
#define mp make_pair
using namespace std;
 
const int mod = 998244353;
const int inf = 1e16;
const int N = 55;

int32_t main(){
    cin.tie(0); cout.tie(0);
    ios_base::sync_with_stdio(false);
    int n;
    cin>>n;
    vector<pair<int, int> > a(n);
    vector<int> vp(n+1);
    for(int i = 0; i < n; i++){
        cin>>a[i].first>>a[i].second;
    }
    sort(a.begin(), a.end());
    for(int i = 0; i < n; i++){
        vp[i+1] = vp[i] + a[i].second;
    }
    vector<pair<int, int> > pre(n);
    vector<int> v(n);
    v[0] = a[0].second;
    for(int i = 1; i < n; i++){
        v[i] = a[i].second - (a[i].first - a[i-1].first);
    }
    pre[0].first = v[0];
    pre[0].second = 0;
    for(int i = 1; i < n; i++){
        pre[i].first = pre[i-1].first + v[i];
        pre[i].second = i;
    }

    sort(pre.rbegin(), pre.rend());
    int pind = 0;
    int ans = 0;

    for(int i = 0; i < n; i++){
        while(pind < pre.size()-1 && pre[pind].second < i){
            pind++;
        }

        int x = pre[pind].second;
        int c = (vp[x+1] - vp[i]) - (a[x].first - a[i].first);
        ans = max(ans, c);
    }

    cout<<ans<<endl;
    return 0;
}

Compilation message (stderr)

art.cpp: In function 'int32_t main()':
art.cpp:43:20: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   43 |         while(pind < pre.size()-1 && pre[pind].second < i){
      |               ~~~~~^~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...