输入样例:
13
3 2 3 4
2 5 6
1 7
1 8
1 9
0
2 11 10
1 13
0
0
1 12
0
0
结尾无空行
输出样例:
12
结尾无空行
#include <iostream>
#include <vector>
#include <queue>
using namespace std;
const int INF = 65553;
const int maxn = 1e5 +6;
vector<int> v[maxn];
int vis[maxn];
int d[maxn];
queue<int> q;
int main()
{
int n;
cin>>n;
for(int i = 1; i <= n; i++)
{
int t;
cin>>t;
while(t--)
{
int num;
cin>>num;
vis[num] = 1;
v[i].push_back(num);
}
}
int s;
for(int i = 1; i <= n; i++)
if(!vis[i]) s = i;
q.push(s);
while(!q.empty())
{
int f = q.front();
q.pop();
for(int i = 0; i < v[f].size(); i++)
{
q.push(v[f][i]);
d[v[f][i]] += d[f] + 1;
}
}
int index = 1, max = 0;
for(int i = 2; i <= n; i++)
{
if(max < d[i])
{
index = i;
max = d[i];
}
}
cout<<index<<endl;
return 0;
}