L2-031 深入虎穴 (25分)
#include <bits/stdc++.h>
#define int ll
using namespace std;
typedef long long ll;
const int maxn = 1e5 + 10;
vector<int > ve[maxn];
int vis[maxn];
int id,dis;
int dfs(int fa,int d){
if(ve[fa].size()==0&&d>=dis) dis=d,id=fa;
for(auto x:ve[fa]) dfs(x,d+1);
}
void solve() {
int n;
cin>>n;
for(int i=1;i<=n;i++){
int k;
cin>>k;
for (int j = 0; j < k; ++j) {
int x;
cin>>x;
vis[x]=1;
ve[i].push_back(x);
}
}
int rk;
for(int i=1;i<=n;i++)
if(vis[i]==0) {
rk=i;
break;
}
dfs(rk,0);
cout<<id;
}
signed main() {
int _ = 1;
while (_--) {
solve();
}
return 0;
}