#include<bits/stdc++.h>
#define ff first
#define ss second
#define pb push_back
#define mp make_pair
#define int long long
using namespace std;
const int maxn = 5e5;
const int inf = 1e18;
signed main() {
int t;
cin >> t;
vector<vector<int>> f(t);
for(int i = 0; i < t; i++){
int a;
cin >> a;
for(int j = 0; j < a; j++){
int V;
cin >> V;
V--;
f[V].push_back(i);
}
}
int mn = inf;
for(int s = 0; s < t; s++){
int sum = 0;
queue<int> pq;
pq.push(s);
vector<bool> vis(t, false);
vector<int> d(t);
vis[s] = true;
d[s] = 1;
while(!pq.empty()){
int R = pq.front();
pq.pop();
for(auto T : f[R]){
if(!vis[T]){
d[T] = d[R] + 1;
vis[T] = true;
pq.push(T);
}
}
}
for(int i = 0; i < t; i++){
sum += d[i];
}
mn = min(mn, sum);
}
cout << mn;
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |