Submission #89106

#TimeUsernameProblemLanguageResultExecution timeMemory
89106LkvatashidzeSchools (IZhO13_school)C++17
10 / 100
2065 ms17980 KiB
#include <bits/stdc++.h> #define ll long long using namespace std; multiset < pair < ll, ll > > x; vector < pair < ll, ll > > v; multiset < pair < ll, ll > > st; ll n, m, s, ans; int main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); ll n, m, s; cin >> n >> m >> s; for (ll k=1; k<=n; k++) { ll z, y; cin >> z >> y; v.push_back({z,y}); } sort(v.begin(),v.end()); reverse(v.begin(),v.end()); for (ll k=0; k<m; k++) ans+=v[k].first; for (ll k=m; k<n; k++) { st.insert({v[k].second,v[k].first}); } while (st.size()>s) { st.erase(st.begin()); } set < pair < ll, ll > > ::iterator st_it; for (st_it=st.begin(); st_it!=st.end(); st_it++) ans+=(*st_it).first; set < pair < ll, ll > > st1; while (!st.empty()) { st1.insert({-(*st.begin()).first,(*st.begin()).second}); st.erase(st.begin()); } for (ll k=m-1; k>=0; k--) { while (true) { bool ind1=false; set < pair <ll, ll > > ::iterator st_it; for (st_it=st1.begin(); st_it!=st1.end(); st_it++) { if (ans<ans-v[k].first+v[k].second+(*st_it).first+(*st_it).second) { ans+=((*st_it).first+(*st_it).second); ans-=(v[k].first-v[k].second); st1.erase(st_it); st1.insert({-v[k].second,v[k].first}); ind1=true; break; } } if (!ind1) break; } } cout << ans; return 0; }

Compilation message (stderr)

school.cpp: In function 'int main()':
school.cpp:35:24: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
        while (st.size()>s) {
               ~~~~~~~~~^~
#Verdict Execution timeMemoryGrader output
Fetching results...