5008 | 2023. 04. 09 01:42:11 | TomaSajt | Bürokrácia (40) | cpp17 | Elfogadva 40/40 | 21ms | 7080 KiB |
#include <bits/stdc++.h>
using namespace std;
int main() {
cin.tie(0), ios::sync_with_stdio(0);
int n;
cin >> n;
vector<int> in_deg(n + 1);
vector<int> target(n + 1, -1);
vector<bool> removed(n + 1);
for (int i = 1; i <= n; i++) {
char c;
cin >> c;
if (c == 'R')
continue;
int t;
cin >> t;
target[i] = t;
in_deg[t]++;
}
queue<int> q;
for (int i = 1; i <= n; i++) {
if (in_deg[i] == 0)
q.push(i);
}
while (!q.empty()) {
int u = q.front();
q.pop();
if (target[u] == -1 || removed[target[u]])
continue;
removed[target[u]] = true;
int tt = target[target[u]];
if (tt == -1)
continue;
in_deg[tt]--;
if (in_deg[tt] == 0) {
q.push(tt);
}
}
cout << count(removed.begin() + 1, removed.end(), false) << endl;
for (int i = 1; i <= n; i++) {
if (!removed[i])
cout << i << ' ';
}
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
base | 40/40 | ||||||
1 | Elfogadva | 0/0 | 3ms | 1972 KiB | |||
2 | Elfogadva | 1/1 | 2ms | 2188 KiB | |||
3 | Elfogadva | 1/1 | 3ms | 2340 KiB | |||
4 | Elfogadva | 1/1 | 3ms | 2548 KiB | |||
5 | Elfogadva | 1/1 | 14ms | 5188 KiB | |||
6 | Elfogadva | 1/1 | 19ms | 4396 KiB | |||
7 | Elfogadva | 1/1 | 18ms | 4612 KiB | |||
8 | Elfogadva | 2/2 | 19ms | 5056 KiB | |||
9 | Elfogadva | 2/2 | 20ms | 5204 KiB | |||
10 | Elfogadva | 2/2 | 21ms | 5528 KiB | |||
11 | Elfogadva | 2/2 | 21ms | 5836 KiB | |||
12 | Elfogadva | 2/2 | 14ms | 6108 KiB | |||
13 | Elfogadva | 2/2 | 14ms | 6108 KiB | |||
14 | Elfogadva | 2/2 | 20ms | 6020 KiB | |||
15 | Elfogadva | 2/2 | 18ms | 6364 KiB | |||
16 | Elfogadva | 2/2 | 14ms | 6520 KiB | |||
17 | Elfogadva | 2/2 | 14ms | 6716 KiB | |||
18 | Elfogadva | 2/2 | 14ms | 6660 KiB | |||
19 | Elfogadva | 2/2 | 14ms | 6956 KiB | |||
20 | Elfogadva | 2/2 | 14ms | 6972 KiB | |||
21 | Elfogadva | 2/2 | 13ms | 7080 KiB | |||
22 | Elfogadva | 2/2 | 18ms | 6076 KiB | |||
23 | Elfogadva | 4/4 | 21ms | 6572 KiB |