Submission #856114

#TimeUsernameProblemLanguageResultExecution timeMemory
856114ThylOneArt Exhibition (JOI18_art)C++14
100 / 100
402 ms32844 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...