#include <iostream>
#include<vector>
#include<string>
#include<queue>
using namespace std;
vector<int> tree[102];
int N;
int main()
{
int M;
cin>>N>>M;
int num,t,temp;
for(int i=0; i<M; i++)
{
cin>>num>>t;
for(int j=0; j<t; j++)
{
cin>>temp;
tree[num].push_back(temp);//把儿子放进去
}
}
queue<int> q;
q.push(1);
int maxN=0;
int len=0;
int c=0,maxC=0;//当前层数,最宽所在层数
while(!q.empty())
{//只遍历当前队列的长度
c++;//当前层数加1
len=q.size();
if(len>maxN){
maxN=len;
maxC=c;
}
while(len!=0)
{
int p=q.front();
q.pop();
for(vector<int>::iterator st=tree[p].begin(); st!=tree[p].end(); st++)
{
q.push(*st);
}
len--;
}
}
cout<<maxN<<' '<<maxC;
return 0;
}
PAT The Largest Generation [c++]
最新推荐文章于 2021-09-14 00:05:33 发布