模版题,层次遍历
#include<bits/stdc++.h>
using namespace std;
unordered_map<int, int> mp;
int maxLayer = 1;
struct node {
int layer;
vector<int> v;
}Node[110];
int main() {
int n, m, root, k;
scanf ("%d %d", &n, &m);
for (int i = 0; i < m; i++) {
scanf ("%d %d", &root, &k);
Node[root].v.resize(k);
for (int j = 0; j < k; j++) scanf ("%d", &Node[root].v[j]);
}
Node[1].layer = 1;
queue<int> q;
q.push(1);
while (!q.empty()) {
int now = q.front();
q.pop();
mp[Node[now].layer]++;
if (mp[Node[now].layer] > mp[maxLayer]) maxLayer = Node[now].layer;
for (int i = 0; i < Node[now].v.size(); i++) {
int child = Node[now].v[i];
Node[child].layer = Node[now].layer + 1;
q.push(child);
}
}
printf ("%d %d", mp[maxLayer], maxLayer);
}