Submission #1201829

#TimeUsernameProblemLanguageResultExecution timeMemory
1201829waigoonBosses (BOI16_bosses)C++20
100 / 100
414 ms812 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...