#include <bits/stdc++.h>
#define f first
#define s second
using namespace std;
signed main() {
int n; cin >> n;
vector<vector<int>> v(n); pair<int,int> p = {0,0};
for(int i=0;i<n;i++) {
int t; cin >> t;
for(int j=0;j<t;j++) {int y; cin >> y; v[y-1].push_back(i);}
}
int ans = 1e9;
for(int j=0;j<n;j++) {
queue<pair<int,int>> q; q.push({j,1});
vector<bool> w(n); int c = 0, s = 0;
while(!q.empty()) {
pair<int,int> a = q.front(); q.pop();
if(w[a.f]) continue;
c += a.s, w[a.f] = true, s++;
for(auto i:v[a.f]) if(!w[i]) q.push({i,a.s+1});
//cout << a.f << ' ' << a.s << ' ' << '\n';
}
if(s == n) ans = min(ans, c);
//cout << c << '\n';
}
cout << ans;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |