140242025-01-09 17:37:45PallanekPéterBenzinkút üzemeltetés (55)cpp17Elfogadva 55/553ms1592 KiB
#include <bits/stdc++.h>
using namespace std;

int main(){
    int n,k; cin>>n>>k;
    int T[n+1],H[n+1],dp[n+1];
    T[0]=-k; H[0]=0;
    for (int i=1;i<=n;i++){
        cin >> T[i] >> H[i];
    }
    dp[0]=0;
    vector<vector<int>> benzinkut(n+1);
    benzinkut[0]={};
    for (int i=1;i<=n;i++){
        int j=i-1;
        while (j>0 && T[j]>T[i]-k){j--;}
        if (dp[i-1]>dp[j]+H[i]){
            dp[i]=dp[i-1]; benzinkut[i]=benzinkut[i-1];
        }
        else{
            dp[i]=dp[j]+H[i];
            benzinkut[i]=benzinkut[j];
            benzinkut[i].push_back(i);
        }
    }
    cout << dp[n] << "\n";
    cout << benzinkut[n].size() << " ";
    for (int i:benzinkut[n]){cout << i << " ";}
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base55/55
1Elfogadva0/01ms316 KiB
2Elfogadva0/03ms1592 KiB
3Elfogadva3/31ms316 KiB
4Elfogadva3/31ms316 KiB
5Elfogadva3/31ms316 KiB
6Elfogadva3/31ms316 KiB
7Elfogadva3/31ms316 KiB
8Elfogadva3/31ms316 KiB
9Elfogadva3/31ms316 KiB
10Elfogadva3/31ms316 KiB
11Elfogadva3/31ms316 KiB
12Elfogadva3/31ms564 KiB
13Elfogadva4/42ms820 KiB
14Elfogadva4/42ms820 KiB
15Elfogadva5/52ms1076 KiB
16Elfogadva6/62ms1332 KiB
17Elfogadva6/63ms1332 KiB