3758 2023. 03. 02 20:22:42 hackemon Benzinkút üzemeltetés (55) cpp17 Elfogadva 55/55 4ms 3736 KiB
#include <bits/stdc++.h>
using namespace std;


int main() {
    int n, k;
    cin >> n >> k;
    vector<int> v(n), d(n);
    vector<int> dp(n), pr(n); 

    for(int i = 0 ;i< n;i++ ) {
        cin >> d[i] >> v[i];
        dp[i] = v[i];
    }
    for(int i = 0;i< n;i++ ) {
        pr[i] = i;
        for(int j = 0;j< i;j++ ) {
            if(dp[i] < dp[j] + v[i] && d[i] - d[j] >= k) {
                dp[i] = dp[j] + v[i];
                pr[i] = j;
            }
        }
    }

    int ma = 0;
    int pos = 0;
    for(int i = 0;i< n;i++ ) {
        if(dp[i] > ma) {
            ma = dp[i];
            pos = i;
        }
    }
    cout << ma << endl;

    stack<int> pozicio;
    while(pr[pos] != pos) {
        pozicio.push(pos+1);
        pos = pr[pos];
    }
    pozicio.push(pos+1);

    cout << pozicio.size() << ' ';
    for(int i = 0;i< n;i++)
    while(!pozicio.empty()) {
        cout << pozicio.top() << ' ';
        pozicio.pop();
    }
    cout << endl;
   return 0;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 55/55
1 Elfogadva 0/0 3ms 1812 KiB
2 Elfogadva 0/0 4ms 2288 KiB
3 Elfogadva 3/3 3ms 2288 KiB
4 Elfogadva 3/3 3ms 2496 KiB
5 Elfogadva 3/3 3ms 2740 KiB
6 Elfogadva 3/3 2ms 2956 KiB
7 Elfogadva 3/3 3ms 3124 KiB
8 Elfogadva 3/3 3ms 3132 KiB
9 Elfogadva 3/3 2ms 3236 KiB
10 Elfogadva 3/3 2ms 3200 KiB
11 Elfogadva 3/3 3ms 3196 KiB
12 Elfogadva 3/3 3ms 3332 KiB
13 Elfogadva 4/4 3ms 3408 KiB
14 Elfogadva 4/4 3ms 3412 KiB
15 Elfogadva 5/5 4ms 3644 KiB
16 Elfogadva 6/6 4ms 3736 KiB
17 Elfogadva 6/6 4ms 3560 KiB