Submission #725530

#TimeUsernameProblemLanguageResultExecution timeMemory
725530vjudge1Schools (IZhO13_school)C++17
5 / 100
107 ms14644 KiB
#include <bits/stdc++.h> #define F first #define S second using namespace std; const int N = 3*1e5+5; using ll = long long; using PI = pair<ll, ll>; using PII = pair<PI, ll>; bool vis[N]; int main() { //freopen("school.in", "r", stdin); //freopen("school.out", "w", stdout); ios_base::sync_with_stdio(0); cin.tie(0); ll n, m, s; cin >> n >> m >> s; vector<PII> vp(n+10); for(ll i = 0; i < n; i++){ cin >> vp[i].F.F >> vp[i].F.S; vp[i].S = i; } vector<PII> ord(n+10); for(ll i = 0; i < n; i++){ ord[i].F.F = vp[i].F.F-vp[i].F.S; ord[i].F.S = vp[i].F.F; ord[i].S = i; } sort(ord.begin(), ord.end(), [&](PII a, PII b){ if(a.F.F != b.F.F){ return a.F.F > b.F.F; } return a.F.S > b.F.S; }); ll ans = 0; ll indx = 0; while(m--){ ans += vp[ord[indx].S].F.F; vis[ord[indx].S] = true; indx++; } sort(vp.begin(), vp.end(), [&](PII a, PII b){ if(a.F.S != b.F.S){ return a.F.S > b.F.S; } return a.F.F > b.F.F; }); ll cnt = 0; ll i = 0; while(cnt != s && i != n-1){ if(!vis[vp[i].S]){ ans += vp[i].F.S; cnt++; } i++; } cout << ans <<"\n"; }
#Verdict Execution timeMemoryGrader output
Fetching results...