#include <bits/stdc++.h>
using namespace std;
#define l2 long long
#define ii pair<l2, l2>
int main() {
l2 n, k;
cin >> n >> k;
ii arr[n];
for (l2 i = 0; i < n; i++) {
l2 w, d;
cin >> w >> d;
arr[i] = {0-d, w};}
sort(arr, arr+n);
l2 count = 0;
priority_queue<l2, vector<l2>, greater<l2>> pq;
set<ii> s;
l2 ans = 0;
l2 number = 0;
for (l2 i = 2000; i > 0; i--) {
while (count < n && 0-arr[count].first >= i) {
pq.push(arr[count++].second);
}
if (!pq.empty()) {
ans += pq.top();
number++;
pq.pop();
}
}
cout << number << " " << ans << "\n";
priority_queue<l2, vector<l2>, greater<l2>> pq2;
for (l2 j = 0; j < n; j++) {
while (!pq2.empty()) pq2.pop();
count = 0;
number = 0;
ans = 0;
for (l2 i = 2000; i > 0; i--) {
while (count < n && 0-arr[count].first >= i) {
if (count != j) pq2.push(arr[count].second);
count++;
}
if (!pq2.empty()) {
ans += pq2.top();
number++;
pq2.pop();
}
}
s.insert({0-number, ans});
}
set<ii>::iterator it = s.begin();
it++;
ii p = (*it);
cout << 0-p.first << " " << p.second;
return 0;
}
# | 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... |