#include <bits/stdc++.h>
#define int long long
#define float long double
#define pii pair<int, int>
#define tii tuple<int, int, int>
#define f first
#define s second
#define ve vector
#define emb emplace_back
#define em emplace
using namespace std;
const int inf = 1e18;
const int mod = 1e9 + 7;
int32_t main() {
ios_base::sync_with_stdio(0); cin.tie(0);
int n;
cin >> n;
ve<ve<int>> inv(n);
for (int i = 0; i < n; i++) {
int k;
cin >> k;
while (k--) {
int x;
cin >> x;
inv[x-1].emb(i);
}
}
int mn = inf;
for (int i = 0; i < n; i++) {
queue<pii> q;
ve<bool> vis(n, false);
q.em(i, 1);
int cnt = 0, sum = 0;
while (!q.empty()) {
auto [x, y] = q.front();
q.pop();
if (vis[x]) continue;
vis[x] = true, cnt++, sum += y;
for (auto e : inv[x]) q.em(e, y+1);
}
if (cnt != n) continue;
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... |