114522024-09-26 20:32:32tKriszBenzinkút üzemeltetés (55)cpp14Accepted 55/554ms632 KiB
#include <iostream>
#include <stack>

using namespace std;

struct kut{
    int d;
    int h=0;
    int h1;
    int prev=0;
    int depth=1;
}v[1001];

int main()
{
    int n,k;
    int maxh=0, maxi=1;;
    cin>>n>>k;
    for(int i=1;i<=n;i++){
        cin>>v[i].d>>v[i].h;
        v[i].h1=v[i].h;
        for(int j=1;j<=n;j++){
            if(v[i].d-v[j].d<k) break;
            if(v[i].h+v[j].h1>v[i].h1){
                v[i].h1=v[i].h+v[j].h1;
                v[i].depth=v[j].depth+1;
                v[i].prev=j;
            }
        }
    }
    for(int i=1;i<=n;i++){
        if(v[i].h1>maxh){
            maxh=v[i].h1;
            maxi=i;
        }
    }
    cout<<maxh<<'\n'<<v[maxi].depth;
    stack <int> verem;
    while(maxi!=0){
        verem.push(maxi);
        maxi=v[maxi].prev;
    }
    while(!verem.empty()){
        cout<<' '<<verem.top();
        verem.pop();
    }

    return 0;
}
SubtaskSumTestVerdictTimeMemory
base55/55
1Accepted0/03ms444 KiB
2Accepted0/04ms400 KiB
3Accepted3/33ms360 KiB
4Accepted3/33ms424 KiB
5Accepted3/33ms488 KiB
6Accepted3/33ms452 KiB
7Accepted3/33ms632 KiB
8Accepted3/33ms488 KiB
9Accepted3/33ms360 KiB
10Accepted3/33ms360 KiB
11Accepted3/33ms504 KiB
12Accepted3/33ms360 KiB
13Accepted4/43ms504 KiB
14Accepted4/43ms624 KiB
15Accepted5/54ms360 KiB
16Accepted6/64ms360 KiB
17Accepted6/64ms616 KiB