| # | Time | Username | Problem | Language | Result | Execution time | Memory | 
|---|---|---|---|---|---|---|---|
| 68914 | Vahan | Bosses (BOI16_bosses) | C++17 | 3 ms | 868 KiB | 
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<iostream>
#include<vector>
#include<cstdio>
using namespace std;
vector<int> g[20000];
int n,pp,u[100000],pat=-1,t;
int dfs(int v,int p,int h)
{
    int x=1;
    for(int i=0;i<g[v].size();i++)
    {
        int to=g[v][i];
        if(u[to]==0)
        {
            u[to]=h;
            t++;
        }
    }
    for(int i=0;i<g[v].size();i++)
    {
        int to=g[v][i];
        if(u[to]==h)
            x+=dfs(to,v,h+1);
    }
    pp+=x;
    return x;
}
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        int a;
        scanf("%d",&a);
        for(int j=1;j<=a;j++)
        {
            int b;
            scanf("%d",&b);
            if(i!=b)
                g[b].push_back(i);
        }
    }
    for(int i=1;i<=n;i++)
    {
        pp=0;
        u[i]=1;
        t=1;
        dfs(i,-1,2);
        if(t==n && (pp<pat || pat==-1))
            pat=pp;
        for(int j=1;j<=n;j++)
            u[j]=0;
    }
    cout<<pat<<endl;
    return 0;
}
Compilation message (stderr)
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
