232032026-01-16 17:03:28999Benzinkút üzemeltetés (55)cpp17Elfogadva 55/553ms560 KiB
// Source: https://usaco.guide/general/io

#include <bits/stdc++.h>
using namespace std;

int main() {
    int n,k;cin>>n>>k;
    vector<array<int, 2>> v(n+1);
    for(int i = 1;i<=n;i++){
        cin>>v[i][0];cin>>v[i][1];
    }
    v[0][0]=-k;
    vector<int> dp(n+1);
    vector<array<int,2>> hon(n+1);
    for(int i = 1;i<=n;i++){
        for(int j = 0;j<i;j++){
            if(v[i][0]-v[j][0]>=k){
                if(dp[i]<dp[j]+v[i][1]){
                    hon[i][0]=j;
                    hon[i][1]=1;
                    dp[i]=dp[j]+v[i][1];
                }
            }
        }
        if(dp[i-1]>dp[i]){
            hon[i][0]=i-1;
            hon[i][1]=0;
            dp[i]=dp[i-1];
        }
    }
    //for(int i : dp)cout<<i<<endl;
    cout<<dp[n]<<endl;
    vector<int> ans;
    int i = n;
    while(i!=0){
        if(hon[i][1])ans.push_back(i);
        i=hon[i][0];
    }
    cout<<ans.size()<<' ';
    reverse(ans.begin(),ans.end());
    for(int i : ans){
        cout<<i<<' ';
    }
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base55/55
1Elfogadva0/01ms508 KiB
2Elfogadva0/03ms508 KiB
3Elfogadva3/32ms316 KiB
4Elfogadva3/31ms316 KiB
5Elfogadva3/31ms316 KiB
6Elfogadva3/31ms316 KiB
7Elfogadva3/31ms316 KiB
8Elfogadva3/31ms324 KiB
9Elfogadva3/31ms316 KiB
10Elfogadva3/31ms316 KiB
11Elfogadva3/31ms560 KiB
12Elfogadva3/31ms560 KiB
13Elfogadva4/42ms316 KiB
14Elfogadva4/42ms316 KiB
15Elfogadva5/52ms316 KiB
16Elfogadva6/62ms404 KiB
17Elfogadva6/62ms316 KiB