제출 #239229

#제출 시각아이디문제언어결과실행 시간메모리
239229aggu_01000101Bosses (BOI16_bosses)C++14
0 / 100
5 ms384 KiB
#include <bits/stdc++.h> #define int long long #define INF 1000000000000000 #define lchild(i) (i*2 + 1) #define rchild(i) (i*2 + 2) #define mid(l, u) ((l+u)/2) #define x(p) p.first #define y(p) p.second #define MOD 998244353 using namespace std; int cost = 0; signed main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int n; cin>>n; vector<int> children[n+1]; for(int i =0 ;i<n;i++){ int k; cin>>k; while(k--){ int par; cin>>par; children[par].push_back(i+1); } } int ans = INF; for(int i = 1;i<=n;i++){ bool chosen[n+1]; for(int j = 0;j<=n;j++) chosen[j] = false; chosen[i] = true; queue<pair<int, int>> q; q.push({i, 0}); int cnt = 1; while(!q.empty()){ pair<int, int> curr = q.front(); cost+=curr.second + 1; q.pop(); for(int j: children[curr.first]){ if(chosen[j]) continue; cnt++; chosen[j] = true; q.push({j, curr.second+1}); } } if(cnt!=n) continue; ans = min(ans, cost); cost = 0; } cout<<ans<<"\n"; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...