171232025-05-23 20:12:43algoproAutózáscpp17Hibás válasz 20/100300ms6132 KiB
// UUID: 1f616fef-dba7-499f-a288-651bedd68f61
#include <bits/stdc++.h>
 
using namespace std;
 
#define ll long long
#define fs first
#define sc second
#define pb push_back
#define pll pair<ll, ll>
#define vll vector<ll>
#define v2ll vector<vll>
#define pqll priority_queue<ll>

const ll mod = 1e9+7;
const ll inf = LONG_LONG_MAX;

ll n, k;

void solve()
{
    cin >> n >> k;
    vector<pll> v(n);
    for (pll &i : v) cin >> i.fs >> i.sc;
    ll pos = n;
    vector<pll> dists;
    while(pos > 0) {
        ll ind = pos-1, dist = 0, mn = 1000, mni = pos-1, disti = 0;
        while(ind >= 0 && dist+v[ind].fs <= k) {
            dist += v[ind].fs;
            if (v[ind].sc < mn) {
                mn = v[ind].sc;
                mni = ind;
                disti = dist;
            }
            ind--;
        }
        pos = mni;
        dists.push_back({pos, disti});
    }
    reverse(dists.begin(), dists.end());
    ll ans = 0, tank = 0;
    vector<pll> vans;
    for (ll i = 0; i < dists.size(); i++) {
        if (i == dists.size()-1 || v[dists[i].fs].sc > v[dists[i+1].fs].sc) {
            ans += (dists[i].sc-tank)*v[dists[i].fs].sc;
            vans.push_back({dists[i].fs+1, dists[i].sc-tank});
            tank = 0;
        }
        else {
            ans += (k-tank)*v[dists[i].fs].sc;
            vans.push_back({dists[i].fs+1, k-dists[i].sc});
            tank = k-dists[i].sc;
        }
    }
    cout << ans  << ' ' << vans.size() << '\n';
    for (pll i : vans) cout << i.fs << ' ' << i.sc << '\n';
}
 
signed main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL); cout.tie(NULL);
    ll t = 1;
    //cin >> t;
    while(t--)
    {
        solve();
    }
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base20/100
1Hibás válasz0/01ms316 KiB
2Hibás válasz0/050ms5128 KiB
3Részben helyes2/51ms316 KiB
4Elfogadva5/51ms316 KiB
5Részben helyes2/51ms500 KiB
6Részben helyes2/51ms316 KiB
7Elfogadva5/51ms316 KiB
8Hibás válasz0/51ms512 KiB
9Részben helyes2/51ms316 KiB
10Hibás válasz0/51ms500 KiB
11Hibás válasz0/512ms1628 KiB
12Hibás válasz0/517ms2124 KiB
13Részben helyes2/516ms1872 KiB
14Hibás válasz0/530ms3292 KiB
15Időlimit túllépés0/5289ms4272 KiB
16Időlimit túllépés0/5300ms4316 KiB
17Időlimit túllépés0/5300ms4240 KiB
18Időlimit túllépés0/5280ms4016 KiB
19Időlimit túllépés0/5284ms5804 KiB
20Időlimit túllépés0/5300ms5812 KiB
21Időlimit túllépés0/5300ms6132 KiB
22Időlimit túllépés0/5282ms6064 KiB