Submission #1066415

#TimeUsernameProblemLanguageResultExecution timeMemory
1066415boris_7Bosses (BOI16_bosses)C++17
100 / 100
533 ms860 KiB
#include<bits/stdc++.h>

using namespace std;
using ll = long long;

vector<vector<ll>>gp;
vector<ll>vis;
vector<ll> d;
ll n;
ll ans = LLONG_MAX;

void bfs(ll u){
    queue<ll>q;
    q.push(u);
    vis[u]=1;
    d[u]=1;
    ll cnt = 0,comp=0;
    while(q.size()){
        ll v = q.front();
        q.pop();
        comp++;
        cnt+=d[v];
        for(ll &i:gp[v]){
            if(!vis[i]){
                vis[i]=1;
                d[i]=d[v]+1;
                q.push(i);
            }
        }
    }
    if(comp==n){
        ans = min(ans,cnt);
    }
}

void solve(){
    cin>>n;
    gp = vector<vector<ll>>(n);
    for(ll i =0;i<n;i++){
        ll x;
        cin>>x;
        while(x--){
            ll v;
            cin>>v;
            gp[--v].push_back(i);
        }
    }
    for(ll i = 0;i<n;i++){
        vis = vector<ll>(n);
        d = vector<ll>(n);
        bfs(i);
    }
    cout<<ans<<endl;
}
signed main(){
    ios_base::sync_with_stdio(0);
    cin.tie(nullptr);
    // ll t;cin>>t;while(t--)
        solve();
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...