924

#include <iostream>
#include <string.h>
#include <vector>
#include <queue>

#define ll long long
#define INF 10000000

using namespace std;

vector<int> vb;
vector<int> gr[2501];
int s,n;
int daymap[2501];


void bfs(int src)
{
	int day[2501];
	bool visit[2501];
	for(int i=0;i<2501;i++)
	{
		daymap[i]=-1;
		day[i]=-1;
		visit[i]=false;
	}

	visit[src]=1;
	day[0]+=1;
	daymap[src]=0;
	queue<int> q;
	q.push(src);
	int a;

	while(!q.empty())
	{
		a = q.front();
		q.pop();

		for(int i=0;i<gr[a].size();i++)
		{
			if(visit[gr[a][i]]==0)
			{
				visit[gr[a][i]]=1;
				q.push(gr[a][i]);
				daymap[gr[a][i]]=daymap[a]+1;
				if(day[daymap[gr[a][i]]]==-1)
					day[daymap[gr[a][i]]] = 1;
				else
					day[daymap[gr[a][i]]]+=1;
			}
		}
	}

	int day_no=-1;
	int MX=0;
	for(int i=1;day[i]!=-1;i++)
	{
		if(day[i]>MX)
		{
			MX = day[i];
			day_no = i;
		}

	}
	cout<<MX<<" "<<day_no<<"\n";
}

int main()
{
	int a,t,src;
	/*while(cin>>s)
	{*/
		cin>>s;
		for(int i=0;i<s;i++)
		{
			cin>>n;
			gr[i].clear();
			if(n==0)
			continue;
			while(n--)
			{
				cin>>a;
				gr[i].push_back(a);
			}
		}//s loop

		cin>>t;
		for(int i=0;i<t;i++)
		{
			cin>>src;
			if(gr[src].size()==0)
			{
				cout<<0<<"\n";
				continue;
			}
			bfs(src);
		}
	//}//while

	return 0;
}

 

Leave a Reply

Your email address will not be published. Required fields are marked *