Submission #1163609

#TimeUsernameProblemLanguageResultExecution timeMemory
1163609justin271828Akcija (COCI21_akcija)C++20
0 / 110
51 ms460 KiB
#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;
    multiset<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});
    }
    multiset<ii>::iterator it = s.begin();
    it++;
    ii p = (*it);
    cout << 0-p.first << " " << p.second;
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...