This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
#define int long long
using namespace std;
typedef long long ll;
struct art{
ll height;
ll beauty;
void read(){
cin>>height>>beauty;
}
};
bool operator<(art&a, art&b){
return a.height<b.height;
}
signed main(){
int n;cin>>n;
vector<art> arts(n);
int pref[n];
for(int i=0;i<n;i++){
arts[i].read();
}
sort(arts.begin(),arts.end());
int actSum=0;
for(int i = 0;i<n;i++){
actSum+=arts[i].beauty;
pref[i]=actSum;
}
int partialSum[n];
for(int i=0;i<n;i++){
partialSum[i] = pref[i]-arts[i].height;
}
int maxi = partialSum[n-1];
int maxiSuf[n];
for(int i=n-1;i>=0;i--){
maxi=max(maxi,partialSum[i]);
maxiSuf[i] = maxi;
}
ll ans=0;
for(int iDeb=0;iDeb<n;iDeb++){
int toErase = 0;
if(iDeb>0)toErase=pref[iDeb-1];
ans = max(ans,maxiSuf[iDeb]+arts[iDeb].height-toErase);
}
cout<<ans<<endl;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |