Решение задачи Праздник с Codeforces

Без пояснения   Просмотров: 188


В компании работает n сотрудников, пронумерованных от 1 до n. У каждого сотрудника либо нет руководителя, либо есть ровно один непосредственный руководитель — некоторый другой сотрудник с другим номером. Сотрудник A называется начальником другого сотрудника B, если выполняется хотя бы одно из двух условий:

Сотрудник A — непосредственный руководитель сотрудника B.
У сотрудника B есть непосредственный руководитель, сотрудник C, такой, что A является начальником сотрудника C.
В структуре компании нет циклов. То есть никакой сотрудник не является начальником своего непосредственного руководителя.

Сегодня компания собирается организовать праздник. Для этого необходимо разделить всех n сотрудников на несколько групп: каждый человек должен относиться ровно к одной группе. Более того, в каждой группе не должно быть таких двух сотрудников A и B, что A является начальником B.

Ваша задача — найти наименьшее возможное количество таких групп.

Код

#include<bits/stdc++.h>
using namespace std;
int n,p[3000],t,ans,c;
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++)
		cin>>p[i];
	for(int i=1;i<=n;i++)
	{
		t=p[i];
		c=1;
		while(t!=-1)
		{
			c++;
			t=p[t];
		}
		ans=max(ans,c);
	}
	cout<<ans;
	return 0;
}

         

Администратор Photo Автор: Администратор




Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться