#include <bits/stdc++.h>
using namespace std;
vector<vector<int>> g;
vector<int> s;
int ans = INT_MAX;
void dfs(int u, int p, int depth) {
s[u] = depth;
if (!g[u].size()) ans = min(ans, depth);
for (int v : g[u]) {
if (v != p)
dfs(v, u, depth+1);
}
}
int main() {
int n;
cin >> n;
g.resize(n+1);
s.resize(n+1);
for (int i=2;i<=n;i++) {
int a;
cin >> a;
g[a].push_back(i);
}
dfs(1, 1, 1);
cout << ans << endl;
for (int i=1;i<=n;i++) {
cout << min(ans, s[i]) << " ";
}
cout << endl;
return 0;
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
base | 50/50 | ||||||
1 | Elfogadva | 0/0 | 3ms | 1748 KiB | |||
2 | Elfogadva | 0/0 | 7ms | 2740 KiB | |||
3 | Elfogadva | 1/1 | 2ms | 2264 KiB | |||
4 | Elfogadva | 4/4 | 2ms | 2392 KiB | |||
5 | Elfogadva | 5/5 | 126ms | 44684 KiB | |||
6 | Elfogadva | 2/2 | 135ms | 21624 KiB | |||
7 | Elfogadva | 3/3 | 135ms | 21832 KiB | |||
8 | Elfogadva | 2/2 | 130ms | 21496 KiB | |||
9 | Elfogadva | 2/2 | 123ms | 20536 KiB | |||
10 | Elfogadva | 2/2 | 125ms | 21184 KiB | |||
11 | Elfogadva | 2/2 | 129ms | 23660 KiB | |||
12 | Elfogadva | 2/2 | 135ms | 25404 KiB | |||
13 | Elfogadva | 2/2 | 151ms | 26016 KiB | |||
14 | Elfogadva | 2/2 | 138ms | 26396 KiB | |||
15 | Elfogadva | 2/2 | 143ms | 26848 KiB | |||
16 | Elfogadva | 2/2 | 140ms | 26844 KiB | |||
17 | Elfogadva | 2/2 | 140ms | 26972 KiB | |||
18 | Elfogadva | 2/2 | 140ms | 27364 KiB | |||
19 | Elfogadva | 2/2 | 142ms | 27496 KiB | |||
20 | Elfogadva | 2/2 | 141ms | 27496 KiB | |||
21 | Elfogadva | 2/2 | 142ms | 27656 KiB | |||
22 | Elfogadva | 2/2 | 144ms | 28144 KiB | |||
23 | Elfogadva | 2/2 | 149ms | 32108 KiB | |||
24 | Elfogadva | 3/3 | 170ms | 36748 KiB |