Submission #210157

#TimeUsernameProblemLanguageResultExecution timeMemory
210157Andrei_CotorHotel (CEOI11_hot)C++11
100 / 100
1204 ms30200 KiB
#include<iostream> #include<algorithm> #include<set> using namespace std; int Profit[500005]; pair<int,int> O[500005]; multiset<pair<int,int> > S; int main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); int n,m,o; cin>>n>>m>>o; for(int i=1; i<=n; i++) { int c,p; cin>>c>>p; S.insert({p,c}); } for(int i=1; i<=m; i++) cin>>O[i].first>>O[i].second; sort(O+1,O+m+1); int nr=0; for(int i=m; i>=1; i--) { multiset<pair<int,int> >::iterator it=S.lower_bound({O[i].second,0}); if(it==S.end()) continue; Profit[++nr]=O[i].first-(*it).second; S.erase(it); } sort(Profit+1,Profit+nr+1); long long rez=0; for(int i=nr; i>=max(1,nr-o+1); i--) { if(Profit[i]<=0) break; rez+=Profit[i]; } cout<<rez<<"\n"; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...