532021-01-09 15:47:25mraronSzínes facpp11Elfogadva 50/50202ms61680 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ÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/07ms11256 KiB
2Elfogadva0/010ms11916 KiB
3Elfogadva1/16ms11260 KiB
4Elfogadva4/46ms11268 KiB
5Elfogadva5/590ms47060 KiB
6Elfogadva2/2166ms25100 KiB
7Elfogadva3/3152ms26368 KiB
8Elfogadva2/2153ms27052 KiB
9Elfogadva2/2131ms27320 KiB
10Elfogadva2/2144ms29256 KiB
11Elfogadva2/2160ms32848 KiB
12Elfogadva2/2177ms35556 KiB
13Elfogadva2/2179ms37396 KiB
14Elfogadva2/2173ms38960 KiB
15Elfogadva2/2165ms40524 KiB
16Elfogadva2/2180ms41892 KiB
17Elfogadva2/2193ms43376 KiB
18Elfogadva2/2173ms44716 KiB
19Elfogadva2/2188ms46004 KiB
20Elfogadva2/2173ms47396 KiB
21Elfogadva2/2175ms48956 KiB
22Elfogadva2/2202ms50728 KiB
23Elfogadva2/2179ms55724 KiB
24Elfogadva3/3184ms61680 KiB