fork download
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. #define ll long long
  6. const ll MOD = 1e9+7;
  7. const ll NUM = 1e5+5;
  8. #define dbg(x) cout<<#x<<" = "<<x<<ln
  9. #define fi first
  10. #define se second
  11. #define inf 2e18
  12. #define fast_cin() ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL)
  13. #define in(file) freopen(file, "r", stdin)
  14. #define out(file) freopen(file, "w", stdout)
  15.  
  16. ll n, Visited[NUM], ans = MOD;
  17. vector<ll>N[NUM];
  18.  
  19. void bfs(ll st){
  20. ll temp = 0;
  21. queue<ll>K;
  22. K.push(st);
  23. Visited[st] = 1;
  24. while (!K.empty())
  25. {
  26. ll k = K.front();
  27. temp += Visited[k];
  28. for(ll p: N[k]){
  29. if(Visited[p] < 0){
  30. Visited[p] = Visited[k] + 1;
  31. K.push(p);
  32. }
  33. }
  34. K.pop();
  35. }
  36. ans = min(ans, temp);
  37. }
  38.  
  39. void inp(){
  40. cin>>n;
  41. for(ll i = 1; i<=n; i++){
  42. ll a;
  43. cin>>a;
  44. for(ll j = 1; j<=a; j++){
  45. ll node;
  46. cin>>node;
  47. N[node].push_back(i);
  48. }
  49. }
  50. }
  51.  
  52. void solve(){
  53. for(ll i = 1; i<=n; i++){
  54. fill(Visited+1, Visited+n+1, -1);
  55. bfs(i);
  56. }
  57. cout<<ans;
  58. }
  59. int main()
  60. {
  61. fast_cin();
  62. //in();
  63. //out();
  64. inp();
  65. solve();
  66. return 0;
  67. }
  68.  
Success #stdin #stdout 0.01s 6704KB
stdin
4
1 4
3 1 3 4
2 1 2
1 3
stdout
8