4944 2023. 04. 07 17:47:58 TomaSajt Benzinkút üzemeltetés (55) cpp17 Elfogadva 55/55 4ms 3640 KiB
#include <bits/stdc++.h>
using namespace std;

int main() {
  cin.tie(0), ios::sync_with_stdio(0);
  int n, k;
  cin >> n >> k;
  vector<int> tot_val(n), pos(n), val(n), prev(n, -1);

  for (int i = 0; i < n; i++) {
    cin >> pos[i] >> val[i];
    for (int j = 0; j < i; j++) {
      if (pos[i] - pos[j] >= k && tot_val[i] < tot_val[j]) {
        tot_val[i] = tot_val[j];
        prev[i] = j;
      }
    }
    tot_val[i] += val[i];
  }
  int curr = max_element(tot_val.begin(), tot_val.end()) - tot_val.begin();
  cout << tot_val[curr] << '\n';
  stack<int> res;
  while (curr != -1) {
    res.push(curr);
    curr = prev[curr];
  }
  cout << res.size();
  while (!res.empty()) {
    cout << ' ' << res.top() + 1;
    res.pop();
  }
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 55/55
1 Elfogadva 0/0 3ms 1824 KiB
2 Elfogadva 0/0 4ms 2228 KiB
3 Elfogadva 3/3 3ms 2200 KiB
4 Elfogadva 3/3 3ms 2412 KiB
5 Elfogadva 3/3 2ms 2492 KiB
6 Elfogadva 3/3 3ms 2620 KiB
7 Elfogadva 3/3 3ms 2836 KiB
8 Elfogadva 3/3 3ms 3060 KiB
9 Elfogadva 3/3 3ms 3148 KiB
10 Elfogadva 3/3 3ms 3144 KiB
11 Elfogadva 3/3 3ms 3236 KiB
12 Elfogadva 3/3 3ms 3276 KiB
13 Elfogadva 4/4 3ms 3356 KiB
14 Elfogadva 4/4 4ms 3356 KiB
15 Elfogadva 5/5 4ms 3360 KiB
16 Elfogadva 6/6 4ms 3568 KiB
17 Elfogadva 6/6 4ms 3640 KiB