Submission #1301442

#TimeUsernameProblemLanguageResultExecution timeMemory
1301442PetrixSchools (IZhO13_school)C++20
75 / 100
122 ms10644 KiB
#include <iostream> #include <algorithm> #include <set> using namespace std; int a1[300005],a2[300005]; pair<int,int> v[300005]; multiset<long long> s; bool cmp(pair<int,int> a1,pair<int,int> b1){ return a1.first-a1.second>b1.first-b1.second; } int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); int i,sum=0,n,a,b,rasp=0; cin>>n>>a>>b; for(i=1;i<=n;i++) cin>>v[i].first>>v[i].second; sort(v+1,v+n+1,cmp); for(i=1;i<=n;i++){ sum+=v[i].first; s.insert(v[i].first); if(s.size()>a){ sum-=*s.begin(); s.erase(s.begin()); } a1[i]=sum; } s.clear();sum=0; for(i=n;i>=1;i--){ sum+=v[i].second; s.insert(v[i].second); if(s.size()>b){ sum-=*s.begin(); s.erase(s.begin()); } a2[i]=sum; } for(i=a;i<=n-b;i++) rasp=max(rasp,a1[i]+a2[i+1]); cout<<rasp; }
#Verdict Execution timeMemoryGrader output
Fetching results...