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 |