738 | 2022. 01. 03 14:56:30 | Szin Attila | Benzinkút üzemeltetés (55) | cpp14 | Elfogadva 55/55 | 6ms | 4024 KiB |
#include <bits/stdc++.h>
using namespace std;
const int c = 2 * 1e3;
typedef long long ll;
int dp[c], p[c];
pair<int, int> v[c];
int main(){
ios_base::sync_with_stdio(false);
cin.tie(0);
int n,k;
cin >> n >> k;
for(int i = 0; i < n; i++) {
cin >> v[i].first >> v[i].second;
}
for(int i = 0; i < n; i++) {
dp[i] = v[i].second;
p[i] = i;
for(int j = 0; j < i && v[j].first + k <= v[i].first; j++) {
if(dp[i] < dp[j] + v[i].second) {
dp[i] = dp[j] + v[i].second;
p[i] = j;
}
}
}
int mo, maxi = 0;
for(int i = 0; i < n; i++) {
if(dp[i] > maxi) {
maxi = dp[i];
mo = i;
}
}
stack<int> ki;
int curr = mo;
while(curr != p[curr]) {
ki.push(curr+1);
curr = p[curr];
}
cout << maxi << "\n" << ki.size() + 1 << " " << curr+1;
while(!ki.empty()) {
cout << " " << ki.top();
ki.pop();
}
return 0;
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
base | 55/55 | ||||||
1 | Elfogadva | 0/0 | 3ms | 1836 KiB | |||
2 | Elfogadva | 0/0 | 6ms | 2208 KiB | |||
3 | Elfogadva | 3/3 | 3ms | 2532 KiB | |||
4 | Elfogadva | 3/3 | 3ms | 2524 KiB | |||
5 | Elfogadva | 3/3 | 3ms | 2736 KiB | |||
6 | Elfogadva | 3/3 | 3ms | 2820 KiB | |||
7 | Elfogadva | 3/3 | 3ms | 2924 KiB | |||
8 | Elfogadva | 3/3 | 2ms | 3012 KiB | |||
9 | Elfogadva | 3/3 | 3ms | 3140 KiB | |||
10 | Elfogadva | 3/3 | 3ms | 3224 KiB | |||
11 | Elfogadva | 3/3 | 3ms | 3496 KiB | |||
12 | Elfogadva | 3/3 | 3ms | 3456 KiB | |||
13 | Elfogadva | 4/4 | 4ms | 3472 KiB | |||
14 | Elfogadva | 4/4 | 4ms | 3800 KiB | |||
15 | Elfogadva | 5/5 | 4ms | 3880 KiB | |||
16 | Elfogadva | 6/6 | 4ms | 4024 KiB | |||
17 | Elfogadva | 6/6 | 6ms | 4012 KiB |