#pragma warning(disable:4996)
#include<iostream>
#include<vector>
#include<queue>
using namespace std;
vector<int > vec[110];
int maxchild=0;
int maxchild_temp = 0;
int thelevel=0;
int thelevel_temp = 1;
void bfs(int v) {
queue<int > q;
q.push(v);
int num = q.size();
while (!q.empty()){
int front = q.front();
q.pop();
num = num - 1;
maxchild_temp = maxchild_temp + vec[front].size();
if (maxchild_temp > maxchild) {
maxchild = maxchild_temp;
thelevel = thelevel_temp;
}
for (int i = 0; i < vec[front].size(); i++)
{
q.push(vec[front][i]);
}
if (num <= 0) {
thelevel_temp++;
num = q.size();
maxchild_temp = 0;
}
}
}
int n, m;
int main() {
scanf("%d %d", &n, &m);
if (n == 1) {
cout << 1 << " " << 1;
system("pause");
return 0;
}
for (int i = 0; i < m; i++)
{
int father,k;
scanf("%d %d", &father,&k);
for (int i = 0; i < k; i++)
{
int child;
scanf("%d", &child);
vec[father].push_back(child);
}
}
vec[n + 1].push_back(1);
bfs(n+1);
cout << maxchild << " " << thelevel;
system("pause");
return 0;
}
网友评论