171062025-05-22 18:11:41algoproAutózáscpp17Elfogadva 100/10075ms6828 KiB
// UUID: 10e36304-70a8-48a0-b04e-eaa1baa9fcee
#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;
        }*/
        
        
        if(k >= dpref[rs[i]-1] - dpref[i-1] && dpref[rs[i]-1] - dpref[i-1] > tank)
        {
            int d = dpref[rs[i]-1] - dpref[i-1];
            total += (d - tank)*v[i][1];
            ans.pb({i, d-tank});
            tank = d;
        }
        else if(dpref[rs[i]-1] - dpref[i-1] > tank)
        {
            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;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base100/100
1Elfogadva0/01ms508 KiB
2Elfogadva0/059ms5084 KiB
3Elfogadva5/51ms316 KiB
4Elfogadva5/51ms316 KiB
5Elfogadva5/51ms316 KiB
6Elfogadva5/51ms316 KiB
7Elfogadva5/51ms316 KiB
8Elfogadva5/51ms316 KiB
9Elfogadva5/51ms316 KiB
10Elfogadva5/51ms316 KiB
11Elfogadva5/514ms1412 KiB
12Elfogadva5/521ms1912 KiB
13Elfogadva5/517ms1668 KiB
14Elfogadva5/535ms3128 KiB
15Elfogadva5/546ms4304 KiB
16Elfogadva5/545ms4236 KiB
17Elfogadva5/545ms4272 KiB
18Elfogadva5/543ms4016 KiB
19Elfogadva5/570ms6316 KiB
20Elfogadva5/570ms6584 KiB
21Elfogadva5/571ms6572 KiB
22Elfogadva5/575ms6828 KiB