Submission #1303840

#TimeUsernameProblemLanguageResultExecution timeMemory
1303840mochaBosses (BOI16_bosses)C++20
100 / 100
394 ms748 KiB
#include <bits/stdc++.h>
#define int long long
using namespace std;
const int inf = 1e18;
const int mx = 5e3+5;

int n;
vector<int> g[mx];
int dis[mx];

signed main() {
    cin >> n;
    for (int i=1;i<=n;i++) {
        int k;
        cin >> k;
        for (int j=1;j<=k;j++) {
            int u;
            cin >> u;
            g[u].push_back(i);
        }
    }
    int ans = inf;
    for (int i=1;i<=n;i++) {
        for (int j=1;j<=n;j++) dis[j] = inf;
        dis[i] = 1;
        queue<int> q;
        q.push(i);
        int cnt = 0;
        int sum = 0;
        while (q.size()) {
            int u = q.front(); q.pop();
            sum += dis[u];
            cnt++;
            for (int v:g[u]) {
                if (dis[v] == inf) {
                    dis[v] = dis[u] + 1;
                    q.push(v);
                }
            }
        }
        if (cnt == n) ans = min(ans, sum);
    }
    cout << ans << "\n";
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...