5711 2023. 09. 09 18:36:30 TomaSajt A lehető legkevesebb átszállás (50 pont) cpp17 Elfogadva 50/50 4ms 4652 KiB
#include <bits/stdc++.h>
using namespace std;

struct line {
  int s, e;
};

int main() {
  cin.tie(0), ios::sync_with_stdio(0);

  int n, m;
  cin >> n >> m;

  vector<line> lines(n);
  for (auto& [s, e] : lines) cin >> s >> e;

  int pos = 1, i = 0;
  vector<int> sol;
  while (pos < m && i < n) {
    int bestI = -1;
    while (i < n && lines[i].s <= pos) {
      if (bestI == -1 || lines[i].e > lines[bestI].e) bestI = i;
      i++;
    }
    if (bestI == -1) break;
    pos = lines[bestI].e;
    sol.push_back(bestI);
  }

  if (pos < m) {
    cout << "-1";
    return 0;
  }

  cout << sol.size() - 1 << '\n';
  for (int j : sol) cout << j + 1 << ' ';
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 50/50
1 Elfogadva 0/0 3ms 1824 KiB
2 Elfogadva 0/0 4ms 2292 KiB
3 Elfogadva 1/1 3ms 2244 KiB
4 Elfogadva 1/1 2ms 2472 KiB
5 Elfogadva 2/2 2ms 2684 KiB
6 Elfogadva 2/2 2ms 2892 KiB
7 Elfogadva 2/2 3ms 3120 KiB
8 Elfogadva 2/2 3ms 3336 KiB
9 Elfogadva 2/2 3ms 3680 KiB
10 Elfogadva 2/2 3ms 3752 KiB
11 Elfogadva 2/2 3ms 3972 KiB
12 Elfogadva 2/2 3ms 3916 KiB
13 Elfogadva 2/2 3ms 4016 KiB
14 Elfogadva 2/2 3ms 4104 KiB
15 Elfogadva 2/2 3ms 4116 KiB
16 Elfogadva 2/2 3ms 4028 KiB
17 Elfogadva 2/2 4ms 4296 KiB
18 Elfogadva 2/2 4ms 4264 KiB
19 Elfogadva 2/2 4ms 4524 KiB
20 Elfogadva 2/2 4ms 4480 KiB
21 Elfogadva 2/2 4ms 4512 KiB
22 Elfogadva 2/2 4ms 4500 KiB
23 Elfogadva 2/2 4ms 4496 KiB
24 Elfogadva 2/2 4ms 4500 KiB
25 Elfogadva 2/2 4ms 4628 KiB
26 Elfogadva 2/2 4ms 4652 KiB
27 Elfogadva 2/2 4ms 4632 KiB
28 Elfogadva 2/2 4ms 4648 KiB