239832026-02-03 07:48:46gyarturBenzinkút üzemeltetés (55)cpp17Elfogadva 55/552ms508 KiB
#include <iostream>

using namespace std;

int n, k;
pair<int, int> x[1001];
int dp[1001];
int elozo[1001];

void Beolvas(){
    cin>>n>>k;
    for(int i = 1; i <= n; i++){
        cin>>x[i].first>>x[i].second;
    }
}

void Ut(int i, int drb = 1){
    if(elozo[i] == 0){
        cout<<drb<<' ';
    }
    else{
        Ut(elozo[i], drb+1);
    }
    cout<<i<<' ';
}

int main()
{
    Beolvas();
    int indexMax = 1;
    for(int i = 1; i <= n; i++){
        dp[i] = x[i].second;
        for(int j = 1; j < i; j++){
            if(x[i].first - x[j].first < k)break;
            if(dp[i] < dp[j] + x[i].second){
                dp[i] = dp[j] + x[i].second;
                elozo[i] = j;
            }
        }
        if(dp[indexMax] < dp[i]){
            indexMax = i;
        }
    }
    cout<<dp[indexMax]<<'\n';
    Ut(indexMax);
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base55/55
1Elfogadva0/01ms316 KiB
2Elfogadva0/02ms316 KiB
3Elfogadva3/31ms500 KiB
4Elfogadva3/31ms316 KiB
5Elfogadva3/31ms380 KiB
6Elfogadva3/31ms508 KiB
7Elfogadva3/31ms508 KiB
8Elfogadva3/31ms316 KiB
9Elfogadva3/31ms316 KiB
10Elfogadva3/32ms316 KiB
11Elfogadva3/31ms316 KiB
12Elfogadva3/31ms316 KiB
13Elfogadva4/41ms316 KiB
14Elfogadva4/42ms316 KiB
15Elfogadva5/52ms316 KiB
16Elfogadva6/62ms316 KiB
17Elfogadva6/62ms316 KiB