171952025-06-02 07:15:50algoproAutózáscpp17Elfogadva 100/100125ms8500 KiB
// UUID: 230123d3-a197-42c0-962c-cd7d56236023
#include <bits/stdc++.h>
using namespace std;

int main() {

    ios_base::sync_with_stdio(false);
    cin.tie(0); cout.tie(0);

    int n, k; cin >> n >> k;
    vector<pair<int, int>> a(n); // kov, ar
    for (int i = 0; i < n; i++) {
        cin >> a[i].first >> a[i].second;
    }

    deque<array<int, 3>> q; // ar, maradek, i
    map<int, int> m;
    int cnt = 0;
    for (int i = 0; i < n; i++) {
        int marad = (i - 1 >= 0) ? a[i-1].first : k;
        while (!q.empty() && q.back()[0] > a[i].second) {
            marad += q.back()[1];
            q.pop_back();
        }
        if (marad) q.push_back({a[i].second, marad, i+1});
        int ledolgozando = a[i].first;
        while (!q.empty() && ledolgozando > 0) {
            int meg = min(ledolgozando, q.front()[1]);
            cnt += meg * q.front()[0];
            m[q.front()[2]] += meg;
            ledolgozando -= meg;
            q.front()[1] -= meg;
            if (q.front()[1] == 0) q.pop_front();
        }
    }

    cout << cnt << " " << m.size() << "\n";
    for (auto [x, y] : m) {
        cout << x << " " << y << "\n";
    }
	
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base100/100
1Elfogadva0/01ms316 KiB
2Elfogadva0/061ms2612 KiB
3Elfogadva5/51ms508 KiB
4Elfogadva5/51ms316 KiB
5Elfogadva5/51ms316 KiB
6Elfogadva5/51ms500 KiB
7Elfogadva5/51ms316 KiB
8Elfogadva5/51ms316 KiB
9Elfogadva5/51ms316 KiB
10Elfogadva5/51ms316 KiB
11Elfogadva5/516ms1176 KiB
12Elfogadva5/527ms1664 KiB
13Elfogadva5/518ms1076 KiB
14Elfogadva5/537ms2000 KiB
15Elfogadva5/575ms5432 KiB
16Elfogadva5/570ms5136 KiB
17Elfogadva5/575ms5164 KiB
18Elfogadva5/568ms4912 KiB
19Elfogadva5/5109ms7732 KiB
20Elfogadva5/5118ms8076 KiB
21Elfogadva5/5120ms8084 KiB
22Elfogadva5/5125ms8500 KiB