171052025-05-22 18:03:11algoproAutózáscpp17Wrong answer 20/10059ms4916 KiB
// UUID: d505cbd3-7513-4bdd-901f-bce49cb97afc
#include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define mp make_pair
#define pii pair<int,int>
#define vi vector<int>
#define vvi vector<vector<int>>
#define F first
#define S second
#define endl "\n"
//#define int long long

signed main() {
    ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
    int n, k; cin >> n >> k;
    vector<array<int, 2>>v(n+1);
    for(int i=1;i<=n;i++)
    {
        cin >> v[i][0] >> v[i][1];
    }
    deque<int>dq; //lehetne stack de idc
    vi rs(n+1);
    for(int i=n;i>0;i--)
    {
        while(!dq.empty() && v[dq.back()][1] >= v[i][1]) dq.pop_back();
        if(!dq.empty()) rs[i] = dq.back();
        else rs[i] = n+1;
        dq.push_back(i);
    }
    vi dpref(n+1);
    for(int i=1;i<=n;i++) dpref[i] = dpref[i-1]+v[i][0];
    int tank=0;
    vector<array<int,2>>ans;
    int total=0;
    int i=1;
    while(i<=n)
    {
        if(tank>=v[i][0])
        {
            tank -= v[i][0];
            i++;
            continue;
        }
        
        
        else if(k >= dpref[rs[i]-1] - dpref[i-1])
        {
            int d = dpref[rs[i]-1] - dpref[i-1];
            total += (d - tank)*v[i][1];
            ans.pb({i, d-tank});
            tank = d;
        }
        else
        {
            total += (k-tank)*v[i][1];
            ans.pb({i, k-tank});
            tank = k;
        }
        tank -= v[i][0];
        i++;
    }
    cout << total << " " << ans.size() << endl;
    for(auto a : ans) cout << a[0] << " " << a[1] << endl;
}
SubtaskSumTestVerdictTimeMemory
base20/100
1Wrong answer0/01ms508 KiB
2Wrong answer0/059ms4916 KiB
3Accepted5/51ms316 KiB
4Accepted5/51ms316 KiB
5Accepted5/51ms384 KiB
6Wrong answer0/51ms316 KiB
7Accepted5/51ms316 KiB
8Wrong answer0/51ms316 KiB
9Wrong answer0/51ms316 KiB
10Wrong answer0/51ms316 KiB
11Wrong answer0/514ms1416 KiB
12Wrong answer0/521ms2100 KiB
13Wrong answer0/518ms1660 KiB
14Wrong answer0/537ms3124 KiB
15Wrong answer0/535ms3156 KiB
16Wrong answer0/532ms3080 KiB
17Wrong answer0/535ms3108 KiB
18Wrong answer0/532ms2860 KiB
19Wrong answer0/552ms4660 KiB
20Wrong answer0/552ms4672 KiB
21Wrong answer0/554ms4756 KiB
22Wrong answer0/557ms4916 KiB