Submission #138003

#TimeUsernameProblemLanguageResultExecution timeMemory
138003beso123Schools (IZhO13_school)C++14
5 / 100
2057 ms13564 KiB
#include <bits/stdc++.h> #define int long long #define pii pair<int,int> #define x first #define y second using namespace std; int n,s,m,ans,rm,rs; multiset <pii> sp,ms; main(){ cin>>n>>s>>m; for(int k=1;k<=n;k++){ int a,b; cin>>a>>b; if(rm==0 && rs==0){ if(a>b){ rs++; sp.insert({a,b}); ans=a; } else{ rm++; ms.insert({b,a}); ans=b; } } else{ pii a1=*sp.begin(),b1=*ms.begin(); if(a1.x<a) if(b1.x>=b){ if(rs==s){ sp.erase(sp.begin()); sp.insert({a,b}); ans-=a1.x; ans+=a; } else{ sp.insert({a,b}); ans+=a; rs++; } continue; } if(b1.x<b) if(a1.x>=a){ if(rm==m){ ms.erase(ms.begin()); ms.insert({b,a}); ans-=b1.x; ans+=b; } else{ ms.insert({b,a}); rm++; ans+=b; } continue; } int cnt1=ans,cnt2=ans; if(rs==s) cnt1=ans-a1.x+a; else cnt1=ans+a; if(rm==m) cnt2=ans-b1.x+b; else cnt2=ans+b; if(cnt1<ans && cnt2<ans) continue; if(cnt1>=cnt2){ if(rs==s){ sp.erase(sp.begin()); sp.insert({a,b}); ans-=a1.x; ans+=a; if(rm!=m){ ms.insert({a1.y,a1.x}); ans+=a1.y; rm++; } else{ if(a1.y>b1.x){ ms.erase(ms.begin()); ms.insert({a1.y,a1.x}); ans-=b1.x; ans+=a1.y; } } } else{ sp.insert({a,b}); ans+=a; rs++; } } else{ if(rm==m){ ms.erase(ms.begin()); ms.insert({b,a}); ans-=b1.x; ans+=b; } else{ ms.insert({b,a}); rm++; ans+=b; } if(rs!=s){ sp.insert({b1.y,b1.x}); rs++; ans+=b1.y; } else{ if(b1.y>a1.x){ sp.erase(ms.begin()); sp.insert({b1.y,b1.x}); ans-=a1.x; ans+=b1.y; } } } } } cout<<ans; return 0; }

Compilation message (stderr)

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