Submission #286275

#TimeUsernameProblemLanguageResultExecution timeMemory
286275shrek12357학교 설립 (IZhO13_school)C++14
15 / 100
661 ms17636 KiB
#include <iostream> #include <vector> #include <algorithm> #include <string> #include <map> #include <set> #include <climits> #include <cmath> #include <fstream> #include <queue> using namespace std; bool comp(pair<int, int> a, pair<int, int> b) { return (a.second - a.first) > (b.second - b.first); } int main() { int n, m, s; cin >> n >> m >> s; multiset<pair<int, int>> left; vector<pair<int, int>> schools; for (int i = 0; i < n; i++) { int a, b; cin >> a >> b; left.insert({ a*-1, b }); schools.push_back({ a, b }); } sort(schools.begin(), schools.end(), comp); int ans = 0; for (int i = 0; i < m; i++) { ans += left.begin()->first*-1; left.erase(left.begin()); } for (int i = 0; i < s; i++) { if (left.find({ schools[i].first*-1, schools[i].second }) != left.end()) { ans += schools[i].second; } else { ans += schools[i].second; ans -= schools[i].first; ans += left.begin()->first*-1; left.erase(left.begin()); } } cout << ans << endl; }
#Verdict Execution timeMemoryGrader output
Fetching results...