133862025-01-07 18:31:26SMC40Benzinkút üzemeltetés (55)cpp17Elfogadva 55/553ms1588 KiB
#include <iostream>
#include <vector>
using namespace std;

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