Submission #1178775

#TimeUsernameProblemLanguageResultExecution timeMemory
1178775petezaBosses (BOI16_bosses)C++20
100 / 100
401 ms932 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; int n, a, b; vector<int> adj[5005]; bool vis[5005]; ll ans = LLONG_MAX; queue<pair<int, int>> q; int main() { cin.tie(0) -> sync_with_stdio(0); cin >> n; for(int i=1;i<=n;i++) { cin >> a; while(a--) { cin >> b; adj[b].push_back(i); } } for(int i=1;i<=n;i++) { q.emplace(i, 1); ll sum = 0; memset(vis, 0, sizeof vis); while(!q.empty()) { auto e = q.front(); q.pop(); if(vis[e.first]) continue; vis[e.first] = 1; sum += e.second; for(auto &E:adj[e.first]) q.emplace(E, e.second+1); } bool yes = 1; for(int j=1;j<=n && yes;j++) yes &= vis[j]; if(yes) ans = min(ans, sum); } cout << ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...