fork(1) download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define pb push_back
  4. vector< vector<int> >adj;
  5. int parent[1009][20],level[1009];
  6. void dfs(int s,int p)
  7. {
  8. for(int i=0;i<adj[s].size();i++)
  9. {
  10.  
  11. if(adj[s][i]!=p)
  12. {
  13. level[adj[s][i]]=level[s]+1;
  14. parent[adj[s][i]][0]=s;
  15. dfs(adj[s][i],s);
  16. }
  17. }
  18. }
  19. int main() {
  20. int t;
  21. cin>>t;
  22. while(t--)
  23. {
  24. int m,i,n,j,x;
  25. cin>>n;
  26. adj.resize(n+1);
  27. for(i=0;i<n;i++)
  28. {
  29. cin>>m;
  30.  
  31. for(j=0;j<m;j++)
  32. {
  33. cin>>x;
  34. adj[i].pb(x-1);
  35. adj[x-1].pb(i);
  36. }
  37. }
  38. dfs(0,-1);
  39.  
  40. for(j=0;(1<<j)<n;j++)
  41. {
  42. for(i=n-1;i>=0;i--){
  43. parent[i][j+1]=parent[parent[i][j]][j];}
  44. }
  45.  
  46. cout<<level[8];
  47. }
  48. }
Success #stdin #stdout 0s 15320KB
stdin
1
11
3 2 3 4
0
3 5 6 7
0
0
2 8 9
2 10 11
0
0
0
0
stdout
3