Submission #98873

#TimeUsernameProblemLanguageResultExecution timeMemory
98873robot_dreamsBosses (BOI16_bosses)C++17
100 / 100
1179 ms1020 KiB
#include <bits/stdc++.h> #define F first #define S second #define forn(i, n) for (int i = 0; i < int(n); i++) using namespace std; using ll = long long; int main() { ios_base::sync_with_stdio(false); cout << setprecision(12); cin.tie(nullptr); int n; cin >> n; vector<vector<int>> adj(n); forn(v, n) { int k; cin >> k; forn(i, k) { int u; cin >> u; u--; adj[u].push_back(v); } } ll ans = LLONG_MAX; queue<int> q; vector<int> depth; vector<vector<int>> tree; forn(root, n) { depth.assign(n, -1); tree.assign(n, {}); q.push(root); depth[root] = 1; int num_visited = 1; while (!q.empty()) { int v = q.front(); q.pop(); for (int w : adj[v]) { if (depth[w] != -1) continue; tree[v].push_back(w); q.push(w); depth[w] = depth[v] + 1; num_visited++; } } if (num_visited < n) continue; ll total = 0; for (ll d : depth) total += d; ans = min(ans, total); } cout << ans << endl; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...