Submission #1185538

#TimeUsernameProblemLanguageResultExecution timeMemory
1185538qrnBosses (BOI16_bosses)C++20
100 / 100
437 ms4152 KiB
#include <bits/stdc++.h> // #include <ext/pb_ds/assoc_container.hpp> using namespace std; // using namespace __gnu_pbds; #define SPEED \ ios_base::sync_with_stdio(0); \ cin.tie(NULL); \ cout.tie(NULL); #define pb push_back #define ins insert #define fi first #define se second #define endl "\n" #define ALL(x) x.begin(), x.end() #define sz(x) x.size() #define intt long long const intt mod = 1e9 + 7; const intt base = 31; const intt inf = 1e9; const intt mxN = 2e5 + 5; const intt L = 21; vector<vector<intt>> graph; vector<intt> dis(mxN), used(mxN); intt N; void bfs(intt node) { for(intt i = 1; i <= N; i++) { dis[i] = inf; used[i] = 0; } dis[node] = 0; queue<intt> q; q.push(node); while(not q.empty()) { int cur = q.front(); q.pop(); if(used[cur]) continue; used[cur] = 1; for(auto u : graph[cur]) { if(dis[u] > dis[cur] + 1) { dis[u] = dis[cur] + 1; q.push(u); } } } } void solve() { cin >> N; graph.assign(N + 1, vector<intt> {}); vector<vector<intt>> boslar(N + 1, vector<intt> {}); for(intt i = 1; i <= N; i++){ intt c; cin >> c; vector<intt> bos(c); for(intt j = 0; j < c; j++) { cin >> bos[j]; } boslar[i] = bos; } for(intt i = 1; i <= N; i++) { for(intt j = 0; j < boslar[i].size(); j++) { graph[boslar[i][j]].pb(i); } } intt ans = inf; for(intt i = 1; i <= N; i++) { bfs(i); intt forthis = 0; // cout << i << ": "; for(intt j = 1; j <= N; j++) { forthis += dis[j]; } ans = min(ans, forthis + N); // cout << " :: " << ans << endl; } cout << ans << endl; } signed main() { SPEED; intt tst = 1; // cin >> tst; while (tst--) { solve(); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...