Submission #278657

#TimeUsernameProblemLanguageResultExecution timeMemory
278657keta_tsimakuridzeSchools (IZhO13_school)C++14
100 / 100
200 ms14204 KiB
#include<bits/stdc++.h> #define int long long #define f first #define s second using namespace std; const int N=3e5+5; int a,b,n,n1,n2,k,curAns,Cc,c,i,ans1[N],ans[N]; pair<int,pair<int,int> >p[N]; multiset<int > cur; main(){ ios_base::sync_with_stdio(false); cin>>n>>n1>>n2; for(k=1;k<=n;k++){ cin>>a>>b; p[k]={a-b,{a,b}}; } sort(p+1,p+n+1); reverse(p+1,p+n+1); for(k=1;k<=n1;k++){ cur.insert(p[k].s.f); curAns+=p[k].s.f; } ans[n1]=curAns; for(k=n1+1;k<=n-n2;k++){ ans[k]=ans[k-1]; if((*cur.begin())<=p[k].s.f){ ans[k]-=(*cur.begin()); cur.erase(cur.find(*cur.begin())); cur.insert(p[k].s.f); ans[k]+=p[k].s.f; }//cout<<k<<" "<<ans[k]<<endl; }cur.clear();curAns=0; for(k=n;k>=n-n2+1;k--){ cur.insert(p[k].s.s); curAns+=p[k].s.s; }//cout<<cur.size()<<endl; ans1[n-n2+1]=curAns; for(k=n-n2;k>n1;k--){ ans1[k]=ans1[k+1]; if((*cur.begin())<=p[k].s.s){ ans1[k]-=(*cur.begin()); cur.erase(cur.find(*cur.begin())); cur.insert(p[k].s.s); ans1[k]+=p[k].s.s; } }curAns=0; for(k=n1;k<=n-n2;k++){ // cout<<k<<" "<<ans[k]<<" "<<ans1[k+1]<<endl; curAns=max(curAns,ans[k]+ans1[k+1]); } cout<<curAns<<endl; }

Compilation message (stderr)

school.cpp:10:7: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   10 |  main(){
      |       ^
#Verdict Execution timeMemoryGrader output
Fetching results...