Submission #437706

#TimeUsernameProblemLanguageResultExecution timeMemory
437706jovan_bBosses (BOI16_bosses)C++17
100 / 100
1112 ms964 KiB
#pragma GCC optimize("Ofast") #pragma GCC target("avx,avx2,fma") #include <bits/stdc++.h> using namespace std; typedef long long ll; typedef long double ld; vector <int> drvo[5005]; vector <int> graf[5005]; int cost; int kost[5005]; bool visited[5005]; int mk; void bfs(int v){ visited[v] = true; queue <pair <int, int>> q; q.push({v, 1}); while(!q.empty()){ mk++; int x = q.front().first; int y = q.front().second; cost += y; q.pop(); for(auto c : graf[x]){ if(!visited[c]){ drvo[x].push_back(c); visited[c] = 1; q.push({c, y+1}); } } } } int main(){ ios_base::sync_with_stdio(false); cout.precision(10); cout<<fixed; int n; cin >> n; for(int i=1; i<=n; i++){ int x; cin >> x; for(int j=1; j<=x; j++){ int a; cin >> a; graf[a].push_back(i); } } int mincost = 1000000000; for(int i=1; i<=n; i++){ for(int j=1; j<=n; j++){ visited[j] = 0; kost[j] = 1; drvo[j].clear(); } cost = 0; mk = 0; bfs(i); if(mk != n) continue; mincost = min(mincost, cost); } cout << mincost << "\n"; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...