Submission #1214470

#TimeUsernameProblemLanguageResultExecution timeMemory
1214470Vale_sArt Exhibition (JOI18_art)C++17
100 / 100
328 ms8652 KiB
#include<bits/stdc++.h>
using namespace std;
int main(){
    vector<pair<long long,long long>> V;
    long long n;
    cin>>n;
    for(long long i=0;i<n;i++){
        long long a,b;
        cin>>a>>b;
        V.push_back(make_pair(a,b));
    }
    sort(V.begin(),V.end()); //los ordenaaa
    long long sum=0,best=0,i=0;
    for (int  k=0;k<n; k++) {
        if(V[k].second>sum+V[k].second-(V[k].first-V[i].first)){ //es mejor si no lo tomara
            i=k;  //nuevo inicio
            sum=V[k].second; //inicia la suma + el que estaba ahi
        }else{
            sum+=V[k].second; //si no se resetea, esta bien y se suma
        }
        best = max(best,sum-(V[k].first-V[i].first)); //es mejor el best o suma-()
    }
    cout <<best<<"\n";
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...