133862025-01-07 18:31:26SMC40Benzinkút üzemeltetés (55)cpp17Accepted 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;
}
SubtaskSumTestVerdictTimeMemory
base55/55
1Accepted0/01ms508 KiB
2Accepted0/03ms1588 KiB
3Accepted3/31ms316 KiB
4Accepted3/31ms316 KiB
5Accepted3/31ms316 KiB
6Accepted3/31ms388 KiB
7Accepted3/31ms316 KiB
8Accepted3/31ms316 KiB
9Accepted3/31ms316 KiB
10Accepted3/31ms316 KiB
11Accepted3/31ms316 KiB
12Accepted3/31ms564 KiB
13Accepted4/42ms720 KiB
14Accepted4/42ms824 KiB
15Accepted5/52ms1076 KiB
16Accepted6/62ms1332 KiB
17Accepted6/63ms1332 KiB