제출 #167091

#제출 시각아이디문제언어결과실행 시간메모리
167091itgl학교 설립 (IZhO13_school)C++14
30 / 100
457 ms9908 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; //cout << "==================\n"; while(m--){ //cout << pq.top().ss.ff << ' ' << pq.top().ss.ss << '\n'; res+=pq.top().ss.ff; pq_m.push(-pq.top().ss.ff); pq.pop(); } //cout<<"====================\n"; 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--){ //cout << pq1.top().ss.ff << ' ' << pq1.top().ss.ss << '\n'; 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...