Submission #1079611

#TimeUsernameProblemLanguageResultExecution timeMemory
1079611raspyHotel (CEOI11_hot)C++17
100 / 100
688 ms62912 KiB
#include <bits/stdc++.h> #define int long long #define vi vector<int> #define vvi vector<vi> #define ii pair<int, int> #define f first #define s second #define str string #define pb push_back #define fun function #define P 31 #define mod 1'000'000'007 #define inf 1'000'000'000'000'000'000 #define all(x) (x).begin(), (x).end() #define oopt cout.tie(0);ios_base::sync_with_stdio(false); using namespace std; void solve() { int n, m, o; cin >> n >> m >> o; multiset<ii> sb; for (int i = 0; i < n; i++) { int cn, kp; cin >> cn >> kp; sb.insert({kp, cn}); } vector<ii> pn(m); for (ii&v:pn) cin >> v.f >> v.s; sort(all(pn)); reverse(all(pn)); vi rz; for (int i = 0; i < m; i++) { if (sb.empty()) break; auto it = sb.lower_bound({pn[i].s, 0}); if (it == sb.end()) continue; if (it->f < pn[i].s) it++; rz.pb(pn[i].f-it->s); sb.erase(it); } sort(all(rz)); reverse(all(rz)); int rez = 0; for (int i = 0; i < min((int)rz.size(), o); i++) rez += max(rz[i], 0ll); cout << rez << "\n"; } signed main() { oopt; solve(); 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...