210182026-01-12 08:19:52hunzombiBenzinkút üzemeltetés (55)cpp17Wrong answer 0/5516ms12304 KiB
#include <bits/stdc++.h>
using namespace std;

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int n, k;
    cin >> n >> k;
    vector<long long> dp(1000001, 0);
    vector<int> prev(1000001, 0);
    for (int i=0; i < n; i++) {
        int u, v;
        cin >> u >> v;
        dp[u] = v;
    }
    for (int i=1; i <= 1000000; i++) {
        long long best = dp[i];
        if (i - k > 0) {
            best += dp[i - k];
        }
        if (best > dp[i - 1]) {
            dp[i] = best;
            prev[i] = max(i - k, 0);
        } else {
            dp[i] = dp[i - 1];
            prev[i] = prev[i - 1];
        }
    }
    vector<int> res;
    int i = n + 1;
    while (i > 0) {
        res.push_back(i);
        i = prev[i];
    }
    reverse(res.begin(), res.end());
    cout << dp[1000000] << '\n';
    cout << res.size() << ' ';
    for (int x : res) cout << x << ' ';
    cout << '\n';
    return 0;
}
SubtaskSumTestVerdictTimeMemory
base0/55
1Wrong answer0/013ms12088 KiB
2Wrong answer0/016ms12268 KiB
3Wrong answer0/313ms12084 KiB
4Wrong answer0/314ms12088 KiB
5Wrong answer0/314ms12084 KiB
6Wrong answer0/314ms12084 KiB
7Wrong answer0/314ms12084 KiB
8Wrong answer0/316ms11948 KiB
9Wrong answer0/314ms12120 KiB
10Wrong answer0/316ms12268 KiB
11Wrong answer0/314ms11940 KiB
12Wrong answer0/316ms12100 KiB
13Wrong answer0/416ms12268 KiB
14Wrong answer0/414ms12084 KiB
15Wrong answer0/514ms12304 KiB
16Wrong answer0/614ms12084 KiB
17Wrong answer0/614ms12084 KiB