8154 | 2024. 01. 12 14:49:17 | szil | Titkos sorozat | cpp17 | Elfogadva 40/40 | 43ms | 27788 KiB |
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 200'001;
int a[MAXN], ans[MAXN], timer = 1;
bool vis[MAXN];
vector<int> g[MAXN];
void dfs(int u) {
vis[u]=1;
for (int v : g[u]) {
if (!vis[v]) dfs(v);
}
ans[u] = timer++;
}
int main() {
ios::sync_with_stdio(0); cin.tie(0);
int n; cin >> n;
int x = n, last = 0;
for (int i = 1; i <= n; i++) {
cin >> a[i];
if (a[i] == -1) {
if (last) {
g[i].emplace_back(last);
}
last = i;
} else {
g[i].emplace_back(a[i]);
}
}
for (int i = 1; i <= n; i++) {
if (a[i] != -1) g[i].emplace_back(last);
}
for (int i = 1; i <= n; i++) {
if (!vis[i]) dfs(i);
}
for (int i = 1; i <= n; i++) {
cout << n-ans[i]+1 << " ";
}
cout << "\n";
return 0;
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
base | 40/40 | ||||||
1 | Elfogadva | 0/0 | 6ms | 11332 KiB | |||
2 | Elfogadva | 0/0 | 24ms | 16092 KiB | |||
3 | Elfogadva | 1/1 | 6ms | 11932 KiB | |||
4 | Elfogadva | 1/1 | 6ms | 12104 KiB | |||
5 | Elfogadva | 2/2 | 6ms | 12132 KiB | |||
6 | Elfogadva | 1/1 | 6ms | 12172 KiB | |||
7 | Elfogadva | 1/1 | 6ms | 12208 KiB | |||
8 | Elfogadva | 2/2 | 6ms | 12352 KiB | |||
9 | Elfogadva | 2/2 | 39ms | 20448 KiB | |||
10 | Elfogadva | 2/2 | 41ms | 20620 KiB | |||
11 | Elfogadva | 2/2 | 39ms | 20664 KiB | |||
12 | Elfogadva | 2/2 | 41ms | 21080 KiB | |||
13 | Elfogadva | 2/2 | 39ms | 21276 KiB | |||
14 | Elfogadva | 2/2 | 39ms | 21840 KiB | |||
15 | Elfogadva | 2/2 | 41ms | 22652 KiB | |||
16 | Elfogadva | 3/3 | 41ms | 22856 KiB | |||
17 | Elfogadva | 3/3 | 43ms | 23372 KiB | |||
18 | Elfogadva | 3/3 | 43ms | 24036 KiB | |||
19 | Elfogadva | 3/3 | 43ms | 24812 KiB | |||
20 | Elfogadva | 3/3 | 43ms | 27788 KiB | |||
21 | Elfogadva | 1/1 | 41ms | 23296 KiB | |||
22 | Elfogadva | 1/1 | 41ms | 23608 KiB | |||
23 | Elfogadva | 1/1 | 41ms | 24108 KiB |