216142026-01-13 17:16:21algoproBenzinkút üzemeltetés (55)cpp17Elfogadva 55/552ms512 KiB
// UUID: ed283ba9-146c-4b1d-9668-26fb851187ee
#include <bits/stdc++.h>
using namespace std;

int main() {
    int n, k; cin >> n >> k;
    vector<int> a(n+1), b(n+1), c(n+1);
    vector<long long> dp(n+1);
    for(int i = 1; i <= n; i++) cin >> a[i] >> b[i];
    for(int i = 1; i <= n; i++){
        dp[i] = dp[i-1];
        c[i] = -1;
        int j = i - 1;
        while(j > 0 && a[j] > a[i] - k){
            j--;
        }
        if(dp[j] + b[i] > dp[i]){
                dp[i] = dp[j] + b[i];
                c[i] = j; 
            }
    }
    vector<int> d;
    for(int i = n; i > 0; ){
        if(c[i] != -1){
            d.push_back(i);
            i = c[i];
        }
        else i--;
    }
    sort(d.begin(), d.end());
    cout << dp[n] << "\n" << d.size();
    for(int i : d){
        cout << " " << i;
    }
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base55/55
1Elfogadva0/01ms316 KiB
2Elfogadva0/02ms500 KiB
3Elfogadva3/31ms512 KiB
4Elfogadva3/31ms316 KiB
5Elfogadva3/31ms316 KiB
6Elfogadva3/31ms316 KiB
7Elfogadva3/31ms316 KiB
8Elfogadva3/31ms316 KiB
9Elfogadva3/31ms316 KiB
10Elfogadva3/31ms316 KiB
11Elfogadva3/31ms400 KiB
12Elfogadva3/31ms508 KiB
13Elfogadva4/41ms316 KiB
14Elfogadva4/41ms316 KiB
15Elfogadva5/51ms316 KiB
16Elfogadva6/62ms332 KiB
17Elfogadva6/61ms316 KiB