Submission #857778

#TimeUsernameProblemLanguageResultExecution timeMemory
857778qrnoBosses (BOI16_bosses)C++17
100 / 100
352 ms724 KiB
#include <iostream> #include <vector> #include <array> #include <bitset> using namespace std; constexpr int INF = 1e9; constexpr int MAXN = 5e3; int best = INF; int N; array<vector<short>, MAXN> G; array<short, MAXN> val, q; signed main() { ios::sync_with_stdio(false); cin.tie(nullptr); cin >> N; for (int i = 0; i < N; i++) { int K; cin >> K; while (K--) { int u; cin >> u; u--; G[u].push_back(i); } } for (int i = 0; i < N; i++) { int l = 0, r = -1; bitset<MAXN> vis; q[++r] = i; val[i] = 1; vis[i] = true; int done = 0, sum = 0; while (l <= r) { auto v = q[l++]; sum += val[v]; done++; for (auto u : G[v]) { if (!vis[u]) { q[++r] = u; val[u] = val[v]+1; vis[u] = true; } } } if (done < N) continue; best = min(best, sum); } cout << best << '\n'; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...