1094. The Largest Generation (25)

#include <iostream>
#include <vector>
#include <queue>

using namespace std;

vector<int> v[110];
queue<int> q;
int vis[110], level, maxcount, maxlevel;

void bfs()
{
	int qsize = q.size(), vsize, cur, i, next;
	level++;

	if(qsize > maxcount)
	{
		maxcount = qsize;
		maxlevel = level;
	}

	while(qsize--)
	{
		cur = q.front();
		q.pop();

		vsize = v[cur].size();
		for(i = 0; i < vsize; i++)
		{
			next = v[cur][i];
			if(vis[next] == 0)
			{
				vis[next] = 1;
				q.push(next);
			}
		}
	}

	qsize = q.size();
	if(qsize > 0)
	{
		bfs();
	}
}

int main()
{
	int n, m;
	scanf("%d%d", &n, &m);

	int i, root, k, j, next;
	for(i = 1; i <= m; i++)
	{
		scanf("%d%d", &root, &k);

		for(j = 1; j <= k; j++)
		{
			scanf("%d", &next);
			v[root].push_back(next);
		}
	}

	q.push(1);
	bfs();

	printf("%d %d\n", maxcount, maxlevel);

	system("pause");
	return 0;
}

 

posted on 2025-11-23 17:22  王景迁  阅读(3)  评论(0)    收藏  举报

导航