Submission #167314

#TimeUsernameProblemLanguageResultExecution timeMemory
167314itglSchools (IZhO13_school)C++14
30 / 100
443 ms11520 KiB
#include<bits/stdc++.h> #define pb push_back #define ff first #define ss second #define mp make_pair using namespace std; priority_queue<pair<int,pair<int,int> > > pq,pq1; priority_queue<int> pq_m,pq_s; int main(){ int n,m,s; cin >> n >> m >> s; for(int i=1;i<=n;i++){ int x,y; cin >> x >> y; pq.push(mp(x-y,mp(x,y))); } int res=0; while(m--){ res+=pq.top().ss.ff; pq_m.push(-pq.top().ss.ff); pq.pop(); } int k=pq.size(); while(k--){ pq1.push(mp(-pq.top().ff,mp(pq.top().ss.ff,pq.top().ss.ss))); pq.pop(); } while(s--){ res+=pq1.top().ss.ss; pq_s.push(-pq1.top().ss.ss); pq1.pop(); } while(!pq1.empty()){ int x1,y1; x1=-pq_m.top(); y1=-pq_s.top(); if(pq1.top().ss.ff-x1>0){ if(pq1.top().ss.ff-x1>pq1.top().ss.ss-y1){ res+=pq1.top().ss.ff-x1; pq_m.pop(); pq_m.push(-pq1.top().ss.ff); } else{ res+=pq1.top().ss.ss-y1; pq_s.pop(); pq_s.push(-pq1.top().ss.ss); } }else{ if(pq1.top().ss.ss-y1>0){ res+=pq1.top().ss.ss-y1; pq_s.pop(); pq_s.push(-pq1.top().ss.ss); } } pq1.pop(); } cout <<res; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...