#include <bits/stdc++.h>
using namespace std;
const int INF = 1e9+7;
vector<vector<int>> graf;
vector<int> szinek;
int db;
int sekely(int akt){
if(graf[akt].size() == 0){
return 1;
}
int ki = INF;
for(int kov : graf[akt]){
ki = min(ki, sekely(kov) + 1);
}
return ki;
}
void szinez(int akt, int mod){
mod %= db;
szinek[akt] = mod+1;
for(int kov : graf[akt]){
szinez(kov, mod+1);
}
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(NULL);
int n;
cin >> n;
graf.assign(n+1, vector<int>());
szinek.assign(n+1, -1);
int szulo;
for(int i = 2; i <= n; i++){
cin >> szulo;
graf[szulo].push_back(i);
}
db = sekely(1);
szinez(1, 0);
cout << db << "\n";
for(int i = 1; i <= n; i++){
cout << szinek[i] << " ";
}
cout << "\n";
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
base | 50/50 | ||||||
1 | Elfogadva | 0/0 | 3ms | 1696 KiB | |||
2 | Elfogadva | 0/0 | 4ms | 2684 KiB | |||
3 | Elfogadva | 1/1 | 2ms | 1940 KiB | |||
4 | Elfogadva | 4/4 | 2ms | 2196 KiB | |||
5 | Elfogadva | 5/5 | 75ms | 38284 KiB | |||
6 | Elfogadva | 2/2 | 90ms | 21184 KiB | |||
7 | Elfogadva | 3/3 | 97ms | 21428 KiB | |||
8 | Elfogadva | 2/2 | 128ms | 20996 KiB | |||
9 | Elfogadva | 2/2 | 101ms | 20044 KiB | |||
10 | Elfogadva | 2/2 | 82ms | 21048 KiB | |||
11 | Elfogadva | 2/2 | 89ms | 23464 KiB | |||
12 | Elfogadva | 2/2 | 97ms | 25196 KiB | |||
13 | Elfogadva | 2/2 | 180ms | 25740 KiB | |||
14 | Elfogadva | 2/2 | 129ms | 26080 KiB | |||
15 | Elfogadva | 2/2 | 114ms | 26560 KiB | |||
16 | Elfogadva | 2/2 | 104ms | 26600 KiB | |||
17 | Elfogadva | 2/2 | 108ms | 26724 KiB | |||
18 | Elfogadva | 2/2 | 126ms | 27208 KiB | |||
19 | Elfogadva | 2/2 | 123ms | 27496 KiB | |||
20 | Elfogadva | 2/2 | 123ms | 27448 KiB | |||
21 | Elfogadva | 2/2 | 123ms | 27732 KiB | |||
22 | Elfogadva | 2/2 | 130ms | 28152 KiB | |||
23 | Elfogadva | 2/2 | 137ms | 30732 KiB | |||
24 | Elfogadva | 3/3 | 163ms | 33864 KiB |