#include <bits/stdc++.h>
using namespace std;
pair<int, long long> solve(vector<pair<int, int>> a, int d) {
priority_queue<int> taken;
long long ans = 0;
for (int i = 0; i < (int)a.size(); i++) {
if (i == d) continue;
//case 1:
if ((int)taken.size() < a[i].first) {
taken.push(a[i].second);
ans += a[i].second;
}
else {
//consider to throw away or not
if (a[i].second > taken.top()) {
ans -= taken.top();
ans += a[i].second;
taken.push(a[i].second);
}
}
}
return {(int) taken.size(), ans} ;
}
int main() {
int n; cin >> n;
int k; cin >> k;
vector<pair<int, int>> a(n);
for (int i = 0; i < n; i++) cin >> a[i].second >> a[i].first;
sort(a.begin(), a.end());
pair<int, long long> ans = solve(a, -1);
cout << ans.first << ' ' << ans.second << '\n';
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |