Submission #938832

#TimeUsernameProblemLanguageResultExecution timeMemory
938832Darren0724Bosses (BOI16_bosses)C++17
100 / 100
429 ms848 KiB
#include <bits/stdc++.h>
using namespace std;
#define LCBorz ios_base::sync_with_stdio(false); cin.tie(0);
#define all(x) x.begin(), x.end()
#define endl '\n'
const int N=5005;
const int INF=1e9;
int32_t main() {
    LCBorz;
    int n;cin>>n;
    vector<int> adj[N];
    for(int i=1;i<=n;i++){
        int k;cin>>k;
        for(int j=0;j<k;j++){
            int p;cin>>p;
            adj[p].push_back(i);
        }
    }
    auto bfs=[&](int s)->int {
        vector<int> dis(N,INF);
        queue<int> q;
        q.push(s);
        dis[s]=0;
        int ans=0,cnt=0;
        while(q.size()){
            int p=q.front();
            q.pop();
            ans+=dis[p];
            cnt++;
            for(int j:adj[p]){
                if(dis[j]==INF){
                    dis[j]=dis[p]+1;
                    q.push(j);
                }
            }
        }
        if(cnt==n)return ans+n;
        return INF;
    };
    int ans=INF;
    for(int i=1;i<=n;i++){
        ans=min(ans,bfs(i));
    }
    cout<<ans<<endl;
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...