Submission #1153058

#TimeUsernameProblemLanguageResultExecution timeMemory
1153058AlgorithmWarriorBosses (BOI16_bosses)C++20
100 / 100
367 ms712 KiB
#include <bits/stdc++.h> using namespace std; int const INF=1e9; int const MAX=5005; int n; vector<int>sons[MAX]; void read(){ cin>>n; int i; for(i=1;i<=n;++i){ int nr; cin>>nr; while(nr--){ int boss; cin>>boss; sons[boss].push_back(i); } } } int cost[MAX]; int bfs(int start){ int i; for(i=1;i<=n;++i) cost[i]=0; queue<int>q; cost[start]=1; q.push(start); while(!q.empty()){ int curr=q.front(); q.pop(); for(auto fiu : sons[curr]) if(!cost[fiu]){ cost[fiu]=cost[curr]+1; q.push(fiu); } } bool gasit=0; int sum=0; for(i=1;i<=n;++i) if(cost[i]) sum+=cost[i]; else gasit=1; return ((gasit)?INF:sum); } void minself(int& x,int val){ if(x>val) x=val; } int solve(){ int minim=INF; int i; for(i=1;i<=n;++i) minself(minim,bfs(i)); return minim; } int main() { read(); cout<<solve(); return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...