#include <bits/stdc++.h>
using namespace std;
#define int long long
#define double long double
#define pii pair<int, int>
signed main() {
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
#ifdef CB
freopen("be2.txt", "r", stdin);
// freopen("out.txt", "w", stdout);
#endif
int N;
cin >> N;
vector<vector<int>> g(N + 1);
for (int i = 2; i <= N; i++) {
int a;
cin >> a;
g[a].push_back(i);
}
int M = N;
auto dfs1 = [&](auto dfs1, int i, int r) -> int {
int u = 1;
for (int j : g[i]) {
u += dfs1(dfs1, j, r + 1);
}
M = min(M, r + u);
return u;
};
dfs1(dfs1, 1, 0);
set<int> s;
for (int i = 1; i <= M; i++) {
s.insert(i);
}
vector<int> a(N + 1);
auto dfs2 = [&](auto dfs2, int i) -> void {
if (a[i]) {
s.erase(a[i]);
}
for (int j : g[i]) {
a[j] = s.empty() ? 0 : *s.begin();
dfs2(dfs2, j);
}
if (a[i]) {
s.insert(a[i]);
}
};
a[1] = 1;
dfs2(dfs2, 1);
cout << M << '\n';
for (int i = 1; i <= N; i++) {
cout << max(a[i], 1ll) << ' ';
}
cout << '\n';
return 0;
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
base | 50/50 | ||||||
1 | Elfogadva | 0/0 | 3ms | 1828 KiB | |||
2 | Elfogadva | 0/0 | 6ms | 2988 KiB | |||
3 | Elfogadva | 1/1 | 3ms | 2232 KiB | |||
4 | Elfogadva | 4/4 | 3ms | 2444 KiB | |||
5 | Elfogadva | 5/5 | 238ms | 90212 KiB | |||
6 | Elfogadva | 2/2 | 128ms | 24016 KiB | |||
7 | Elfogadva | 3/3 | 119ms | 24492 KiB | |||
8 | Elfogadva | 2/2 | 104ms | 23768 KiB | |||
9 | Elfogadva | 2/2 | 93ms | 23244 KiB | |||
10 | Elfogadva | 2/2 | 93ms | 23756 KiB | |||
11 | Elfogadva | 2/2 | 127ms | 25444 KiB | |||
12 | Elfogadva | 2/2 | 178ms | 27072 KiB | |||
13 | Elfogadva | 2/2 | 190ms | 27812 KiB | |||
14 | Elfogadva | 2/2 | 151ms | 28024 KiB | |||
15 | Elfogadva | 2/2 | 146ms | 28500 KiB | |||
16 | Elfogadva | 2/2 | 128ms | 28532 KiB | |||
17 | Elfogadva | 2/2 | 140ms | 29080 KiB | |||
18 | Elfogadva | 2/2 | 170ms | 29368 KiB | |||
19 | Elfogadva | 2/2 | 153ms | 29632 KiB | |||
20 | Elfogadva | 2/2 | 177ms | 30048 KiB | |||
21 | Elfogadva | 2/2 | 146ms | 31064 KiB | |||
22 | Elfogadva | 2/2 | 152ms | 32852 KiB | |||
23 | Elfogadva | 2/2 | 194ms | 45076 KiB | |||
24 | Elfogadva | 3/3 | 236ms | 60836 KiB |