#include <bits/stdc++.h>
using i64 = long long;
void solve() {
int n;
std::cin >> n;
std::vector<std::vector<int>> kid(n);
for (int i = 0; i < n; i++) {
int k;
std::cin >> k;
while (k--) {
int f;
std::cin >> f;
kid[f - 1].push_back(i);
}
}
i64 ans = 1LL * n * n + 1;
auto test = [&](int r) {
std::vector<int> dep(n, n + 1);
dep[r] = 1;
std::queue<int> q;
q.push(r);
i64 sum = 0LL;
while (!q.empty()) {
int v = q.front();
q.pop();
sum += dep[v];
for (int u : kid[v]) {
if (dep[u] == n + 1) {
dep[u] = dep[v] + 1;
q.push(u);
}
}
}
if (std::count(dep.begin(), dep.end(), n + 1) == 0) {
ans = std::min(ans, sum);
}
};
for (int i = 0; i < n; i++) {
test(i);
}
std::cout << ans;
}
int main() {
std::ios::sync_with_stdio(false);
std::cin.tie(nullptr);
// int t;
// std::cin >> t;
// while (t--) {
solve();
// }
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |