140042025-01-09 17:08:05bovizdbBenzinkút üzemeltetés (55)cpp17Hibás válasz 0/554ms508 KiB
#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), dp(n+1);
    vll last(n);
    ll ans = 0, ind = -1;
    for (auto &i : v) cin >> i.fs >> i.sc;
    for (ll i = 0; i < n; i++) {
        for (ll j = 0; j <= i; j++) {
            if (v[i].fs - dp[j].fs >= k) {
                if (dp[j].sc + v[i].sc > dp[i+1].sc) {
                    dp[i+1] = {v[i].fs, dp[j].sc+v[i].sc};
                    last[i] = j;
                    if (dp[i+1].sc > ans) {
                        ans = dp[i+1].sc;
                        ind = i;
                    }
                }
            }
        }
    }
    cout << ans << '\n';
    vll out;
    while(last[ind] != ind) {
        cerr << ind << ' ';
        out.push_back(ind+1);
        ind = last[ind];
    }
    reverse(out.begin(), out.end());
    cout << out.size();
    for (ll i : out) cout << ' ' << i;
}
 
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
base0/55
1Hibás válasz0/01ms508 KiB
2Hibás válasz0/04ms316 KiB
3Hibás válasz0/31ms316 KiB
4Hibás válasz0/31ms316 KiB
5Hibás válasz0/31ms316 KiB
6Hibás válasz0/31ms352 KiB
7Hibás válasz0/31ms316 KiB
8Hibás válasz0/31ms316 KiB
9Hibás válasz0/31ms320 KiB
10Hibás válasz0/31ms316 KiB
11Hibás válasz0/31ms508 KiB
12Hibás válasz0/32ms500 KiB
13Hibás válasz0/42ms316 KiB
14Hibás válasz0/43ms452 KiB
15Hibás válasz0/53ms500 KiB
16Hibás válasz0/64ms508 KiB
17Hibás válasz0/64ms464 KiB