Submission #884349

# Submission time Handle Problem Language Result Execution time Memory
884349 2023-12-07T08:20:45 Z vjudge1 Bosses (BOI16_bosses) C++17
0 / 100
1 ms 348 KB
#include <bits/stdc++.h>
using namespace std;

#define ll long long 
#define pb push_back
#define pll array<ll, 2>
#define int long long

const int N = 5e3 + 4;
const ll INF = 1LL << 62;

int n, d[N], cnt[N];
bool vis[N];
vector<int> in[N];

ll bfs(int s) {
    queue<int> q;
    q.push(s);
    d[s] = 0;
    vis[s] = true;

    while (q.size() > 0) {
        int v = q.front();
        q.pop();
        for (int u : in[v]) {
            if (vis[u] == false) {
                vis[u] = true;
                d[u] = d[v] + 1;
                q.push(u);
                ++cnt[d[u]];
            }
        }
    }

    pll ret = {0, 0};
    for (int i = N - 1; i >= 0; --i) {
        ret[0] += cnt[i];
        ret[1] += ret[0];
    }
    return ret[1];
}

signed main() {
    ios::sync_with_stdio(0);
    cin.tie(0);

    cin >> n;
    for (int i = 0; i < n; ++i) {
        int k;
        cin >> k;
        while (k--) {
            int v;
            cin >> v;
            --v;
            in[v].pb(i);
        }
    }

    ll ans = INF;
    for (int i = 0; i < n; ++i) {
        ll res = bfs(i);
        bool seeAll = true;
        for (int j = 0; j < n; ++j) {
            seeAll &= vis[j];
            vis[j] = false;
        }
        if (seeAll == true) {
            ans = min(ans, res);
        }
    }
    cout << ans + 1;

    return 0;
}

# Verdict Execution time Memory Grader output
1 Correct 1 ms 348 KB Output is correct
2 Incorrect 0 ms 348 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 348 KB Output is correct
2 Incorrect 0 ms 348 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 348 KB Output is correct
2 Incorrect 0 ms 348 KB Output isn't correct
3 Halted 0 ms 0 KB -