#include<cstdio>
#include<vector>
using namespace std;
const int maxn=110;
vector<int> Node[maxn];
int hashtable[maxn]={0};
void DFS(int index,int level)
{
hashtable[level]++;
for(int j=0;j<Node[index].size();j++)
{
DFS(Node[index][j],level+1);
}
}
int main()
{
int m,n;
int parent,k,child;
scanf("%d%d",&n,&m);
for(int i=0;i<m;i++)
{
scanf("%d%d",&parent,&k);
for(int j=0;j<k;j++)
{
scanf("%d",&child);
Node[parent].push_back(child);
}
}
DFS(1,1);///根节点为1号直接带入了,并没有用root
int maxlevel=-1,maxvalue=0;
for(int i=0;i<maxn;i++)
{
if(hashtable[i]>maxvalue)
{
maxvalue=hashtable[i];
maxlevel=i;
}
}
printf("%d %d\n",maxvalue,maxlevel);
return 0;
}
注:树使用静态写法