제출 #541845

#제출 시각아이디문제언어결과실행 시간메모리
541845TheTrapperBosses (BOI16_bosses)C++14
100 / 100
700 ms724 KiB
#include <bits/stdc++.h>
using namespace std;
using ll=long long;
using ld=long double;
using pll=pair<ll,ll>;
using vll=vector<ll>;
using vpl=vector<pll>;
using vstr=vector<string>;
using sll=set<ll>;
using spl=set<pll>;
ll INF=1e18;
#define PI 3.14159265
ll MOD=1e9+7;



ll n=0;
vll v[5005];
bool visited[5005];
ll dist[5005];
queue<ll>q;
ll minimum=INF;
ll BFS(ll x)
{
    dist[x]=1;
    q.push(x);
    visited[x]=true;
    while(!q.empty())
    {
        ll y=q.front();
        q.pop();
        for(auto e:v[y])
        {
            if(!visited[e])
            {
                q.push(e);
                visited[e]=true;
                dist[e]=dist[y]+1;
            }
        }
    }
    ll s=0;
    for(ll i=1;i<=n;i++)
    {
        if(!visited[i])
        {
            return INF;
        }
        s += dist[i];
    }
    return s;
}
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cin >> n;
    for(ll i=0;i<n;i++)
    {
        ll x;
        cin >> x;
        for(ll j=0;j<x;j++)
        {
            ll e;
            cin >> e;
            v[e].push_back(i+1);
        }
    }
    for(ll i=1;i<=n;i++)
    {
        ll b=BFS(i);
        minimum=min(minimum,b);
        memset(visited,false,sizeof(visited));
    }
    cout << minimum << '\n';
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...