#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int n, a, b;
vector<int> adj[5005];
bool vis[5005];
ll ans = LLONG_MAX;
queue<pair<int, int>> q;
int main() {
cin.tie(0) -> sync_with_stdio(0);
cin >> n;
for(int i=1;i<=n;i++) {
cin >> a;
while(a--) {
cin >> b;
adj[b].push_back(i);
}
}
for(int i=1;i<=n;i++) {
q.emplace(i, 1);
ll sum = 0;
memset(vis, 0, sizeof vis);
while(!q.empty()) {
auto e = q.front(); q.pop();
if(vis[e.first]) continue;
vis[e.first] = 1;
sum += e.second;
for(auto &E:adj[e.first])
q.emplace(E, e.second+1);
}
bool yes = 1;
for(int j=1;j<=n && yes;j++) yes &= vis[j];
if(yes) ans = min(ans, sum);
}
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... |