#include <bits/stdc++.h>
using namespace std;
int main() {
int n, a;
cin >> n;
vector<vector<int> > x(n+1);
vector<int> tav(n+1);
for (int i=2; i<=n; i++) {
cin >> a;
x[a].push_back(i);
}
tav[1]=1;
queue<int> q;
q.push(1);
int mi=INT_MAX;
while (!q.empty()) {
a=q.front();
q.pop();
for (int cs : x[a]) {
tav[cs]=tav[a]+1;
q.push(cs);
}
if (x[a].size()==0) mi=min(mi, tav[a]);
}
cout << mi << "\n";
for (int i=1; i<=n; i++) cout << min(tav[i], mi) << " ";
return 0;
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
base | 50/50 | ||||||
1 | Elfogadva | 0/0 | 3ms | 1812 KiB | |||
2 | Elfogadva | 0/0 | 7ms | 2888 KiB | |||
3 | Elfogadva | 1/1 | 2ms | 2240 KiB | |||
4 | Elfogadva | 4/4 | 2ms | 2440 KiB | |||
5 | Elfogadva | 5/5 | 116ms | 26064 KiB | |||
6 | Elfogadva | 2/2 | 128ms | 21604 KiB | |||
7 | Elfogadva | 3/3 | 128ms | 21812 KiB | |||
8 | Elfogadva | 2/2 | 135ms | 21404 KiB | |||
9 | Elfogadva | 2/2 | 127ms | 21008 KiB | |||
10 | Elfogadva | 2/2 | 126ms | 22148 KiB | |||
11 | Elfogadva | 2/2 | 143ms | 24724 KiB | |||
12 | Elfogadva | 2/2 | 135ms | 25836 KiB | |||
13 | Elfogadva | 2/2 | 148ms | 26220 KiB | |||
14 | Elfogadva | 2/2 | 138ms | 26348 KiB | |||
15 | Elfogadva | 2/2 | 136ms | 27020 KiB | |||
16 | Elfogadva | 2/2 | 136ms | 26936 KiB | |||
17 | Elfogadva | 2/2 | 137ms | 26952 KiB | |||
18 | Elfogadva | 2/2 | 150ms | 27240 KiB | |||
19 | Elfogadva | 2/2 | 149ms | 27184 KiB | |||
20 | Elfogadva | 2/2 | 150ms | 27532 KiB | |||
21 | Elfogadva | 2/2 | 138ms | 27796 KiB | |||
22 | Elfogadva | 2/2 | 138ms | 28048 KiB | |||
23 | Elfogadva | 2/2 | 141ms | 28068 KiB | |||
24 | Elfogadva | 3/3 | 140ms | 28064 KiB |