53 2021. 01. 09 15:47:25 mraron Színes fa cpp11 Elfogadva 50/50 202ms 61680 KiB
#include<bits/stdc++.h>
using namespace std;

int n;
vector<int> adj[200001];
int lvl[200001], ans[200001];
int c;
void dfs1(int x) {
	if(adj[x].empty()) {
		c=min(lvl[x], c);
	}
	for(auto i:adj[x]) {
		lvl[i]=lvl[x]+1;
		dfs1(i);
	}
}
void dfs2(int x, int cc) {
	cc--;
	cc=max(cc,1);
	ans[x]=cc;
	for(auto i:adj[x]) dfs2(i,cc);
}


int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	cin>>n;
	for(int i=2;i<=n;++i) {
		int p;
		cin>>p;
		adj[p].push_back(i);
	}
	c=1e9;
	lvl[1]=1;dfs1(1);
	dfs2(1, c+1);
	cout<<c<<"\n";
	for(int i=1;i<=n;++i) cout<<ans[i]<<" \n"[i==n];
	return 0;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 50/50
1 Elfogadva 0/0 7ms 11256 KiB
2 Elfogadva 0/0 10ms 11916 KiB
3 Elfogadva 1/1 6ms 11260 KiB
4 Elfogadva 4/4 6ms 11268 KiB
5 Elfogadva 5/5 90ms 47060 KiB
6 Elfogadva 2/2 166ms 25100 KiB
7 Elfogadva 3/3 152ms 26368 KiB
8 Elfogadva 2/2 153ms 27052 KiB
9 Elfogadva 2/2 131ms 27320 KiB
10 Elfogadva 2/2 144ms 29256 KiB
11 Elfogadva 2/2 160ms 32848 KiB
12 Elfogadva 2/2 177ms 35556 KiB
13 Elfogadva 2/2 179ms 37396 KiB
14 Elfogadva 2/2 173ms 38960 KiB
15 Elfogadva 2/2 165ms 40524 KiB
16 Elfogadva 2/2 180ms 41892 KiB
17 Elfogadva 2/2 193ms 43376 KiB
18 Elfogadva 2/2 173ms 44716 KiB
19 Elfogadva 2/2 188ms 46004 KiB
20 Elfogadva 2/2 173ms 47396 KiB
21 Elfogadva 2/2 175ms 48956 KiB
22 Elfogadva 2/2 202ms 50728 KiB
23 Elfogadva 2/2 179ms 55724 KiB
24 Elfogadva 3/3 184ms 61680 KiB