#include <bits/stdc++.h>
#define speed ios::sync_with_stdio(0);cin.tie(0)
using namespace std;
vector<vector<int>> g;
vector<int> dist;
int m = INT_MAX;
void dfs(int u) {
if (g[u].empty()) {
m = min(m, dist[u]);
}
for (auto v : g[u]) {
dist[v] = dist[u] + 1;
dfs(v);
}
}
int main() {
speed;
int n;
cin >> n;
g.resize(n + 1);
dist.resize(n + 1);
for (int i = 2; i <= n; i++) {
int u; cin >> u;
g[u].push_back(i);
}
dist[1] = 1;
dfs(1);
cout << m << '\n';
for (int i = 1; i <= n; i++) {
cout << min(m, dist[i]) << ' ';
}
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
base | 50/50 | ||||||
1 | Elfogadva | 0/0 | 3ms | 1768 KiB | |||
2 | Elfogadva | 0/0 | 4ms | 2860 KiB | |||
3 | Elfogadva | 1/1 | 2ms | 2248 KiB | |||
4 | Elfogadva | 4/4 | 2ms | 2368 KiB | |||
5 | Elfogadva | 5/5 | 67ms | 44724 KiB | |||
6 | Elfogadva | 2/2 | 79ms | 21448 KiB | |||
7 | Elfogadva | 3/3 | 86ms | 21656 KiB | |||
8 | Elfogadva | 2/2 | 78ms | 21320 KiB | |||
9 | Elfogadva | 2/2 | 72ms | 20488 KiB | |||
10 | Elfogadva | 2/2 | 75ms | 21564 KiB | |||
11 | Elfogadva | 2/2 | 78ms | 24000 KiB | |||
12 | Elfogadva | 2/2 | 86ms | 25508 KiB | |||
13 | Elfogadva | 2/2 | 131ms | 26260 KiB | |||
14 | Elfogadva | 2/2 | 87ms | 26600 KiB | |||
15 | Elfogadva | 2/2 | 114ms | 27020 KiB | |||
16 | Elfogadva | 2/2 | 97ms | 27064 KiB | |||
17 | Elfogadva | 2/2 | 101ms | 27720 KiB | |||
18 | Elfogadva | 2/2 | 89ms | 27744 KiB | |||
19 | Elfogadva | 2/2 | 101ms | 27776 KiB | |||
20 | Elfogadva | 2/2 | 101ms | 27768 KiB | |||
21 | Elfogadva | 2/2 | 101ms | 28372 KiB | |||
22 | Elfogadva | 2/2 | 104ms | 28696 KiB | |||
23 | Elfogadva | 2/2 | 112ms | 32688 KiB | |||
24 | Elfogadva | 3/3 | 97ms | 37320 KiB |