Submission #394965

#TimeUsernameProblemLanguageResultExecution timeMemory
394965ak2006Hotel (CEOI11_hot)C++14
0 / 100
1582 ms102040 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; using vb = vector<bool>; using vvb = vector<vb>; using vi = vector<int>; using vvi = vector<vi>; using vl = vector<ll>; using vvl = vector<vl>; using vc = vector<char>; using vvc = vector<vc>; const ll mod = 1e9 + 7,inf = 1e18; #define pb push_back #define fast ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); int n,m,o; ll out; bool cmp2(vl&f,vl&s) { return (f[1] > s[1]) or (f[1] == s[1] && f[0] > s[0]); } int main() { cin>>n>>m>>o; vvl a(n,vl(2)); set<vl>s; for (int i = 0;i<n;i++)cin>>a[i][0]>>a[i][1],s.insert({a[i][1],a[i][0],i + 1}); vl profits; vvl offers(m,vl(2)); for (int i = 0;i<m;i++)cin>>offers[i][0]>>offers[i][1]; sort(offers.begin(),offers.end(),cmp2); for (int i = 0;i<o;i++){ auto it = s.lower_bound({offers[i][1],0,0}); if (it == s.end())continue; profits.pb(offers[i][0] - (*it)[1]); s.erase(it); } sort(profits.rbegin(),profits.rend()); for (int i = 0;i<min(o,(int)profits.size());i++)if (profits[i] > 0)out += profits[i]; cout<<out; 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...