93 2021. 01. 11 20:27:01 Babják Péter Színes fa cpp11 Elfogadva 50/50 144ms 28520 KiB
#include <iostream>
#include <vector>
#define N 200001
using namespace std;
int col[N];
vector<int>child[N];
int p=N;
void bfs(int z)
{
	vector<int>sor;
	sor.push_back(z);
	for(int i=0;i<sor.size();i++)
	{
		int v=sor[i];
		for(int u: child[v])
		{
			if(child[u].size()==0 )
			{
				if(p==N)
				{
					col[u]=col[v]+1;
					p=col[u]+1;
				}
				col[u]=(col[v]+1)%p;
				continue;
			}
			sor.push_back(u);
			col[u]=(col[v]+1)%p;
		}
	}
}
int main()
{
	int n;
	ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
	cin>>n;
	col[0]=0;
	for(int i=1;i<n;i++)
	{
		int a;cin>>a;a--;
		child[a].push_back(i);
	}
	bfs(0);
	cout<<p<<endl;
	for(int i=0;i<n;i++)
	{
		cout<<col[i]+1<<" ";
	}
	return 0;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 50/50
1 Elfogadva 0/0 6ms 11084 KiB
2 Elfogadva 0/0 8ms 11944 KiB
3 Elfogadva 1/1 4ms 11192 KiB
4 Elfogadva 4/4 4ms 11196 KiB
5 Elfogadva 5/5 65ms 28172 KiB
6 Elfogadva 2/2 103ms 23008 KiB
7 Elfogadva 3/3 112ms 23016 KiB
8 Elfogadva 2/2 103ms 22544 KiB
9 Elfogadva 2/2 97ms 21500 KiB
10 Elfogadva 2/2 103ms 22228 KiB
11 Elfogadva 2/2 122ms 25428 KiB
12 Elfogadva 2/2 122ms 26856 KiB
13 Elfogadva 2/2 126ms 27448 KiB
14 Elfogadva 2/2 128ms 27772 KiB
15 Elfogadva 2/2 126ms 28100 KiB
16 Elfogadva 2/2 128ms 28196 KiB
17 Elfogadva 2/2 144ms 28316 KiB
18 Elfogadva 2/2 127ms 28400 KiB
19 Elfogadva 2/2 130ms 28404 KiB
20 Elfogadva 2/2 127ms 28480 KiB
21 Elfogadva 2/2 126ms 28512 KiB
22 Elfogadva 2/2 128ms 28444 KiB
23 Elfogadva 2/2 136ms 28500 KiB
24 Elfogadva 3/3 135ms 28520 KiB