Submission #155948

# Submission time Handle Problem Language Result Execution time Memory
155948 2019-10-02T07:11:20 Z aloo123 Bosses (BOI16_bosses) C++14
100 / 100
1143 ms 764 KB
#include <bits/stdc++.h>
#define ll long long
#define ld long double
#define f first
#define s second
#define mp make_pair
#define pb push_back
#define vll vector<ll>
#define fastio ios_base::sync_with_stdio(0),cin.tie(NULL),cout.tie(NULL)
using namespace std;

const ll N = 5005;
const ll MOD = 1e9+7;
vll adj[N];
vll adj2[N];
ll dp[N];
ll dis[N];
bool vis[N];
ll bfs(ll cur)
{
    for(int i =0;i<N;i++)
    {
        dis[i]= -1;
        vis[i]=false;
    }
    queue<ll> q;
    q.push(cur);
    vis[cur]=true;
    dis[cur]=1;
    while(!q.empty())
    {
        ll p = q.front();
        q.pop();
        for(auto v:adj[p])
        {
            if(vis[v]==false)
            {
                vis[v]=true;
                dis[v]=dis[p]+1;
                q.push(v);
            }
        }
    }
    ll co =0;
    for(int i =1;i<N;i++)
    {
        if(vis[i]==false)continue;
        co+=dis[i];
    }
    return co;
}

int main()
{
    fastio;

    ll n;
    cin >>  n;
    bool poss=true;
    ll src;
    for(int i =1;i<=n;i++)
    {
        ll k;
        cin >> k;
        if(k==0) 
        {
            src=i;
            poss=false;
        }
        for(int j =1;j<=k;j++)
        {
            ll x;
            cin >> x;
            adj[x].pb(i);
        }
    }
    if(!poss)
    {
        ll sum=bfs(src);
        cout<<sum<<endl;
        return 0;
    }
    ll ans = LLONG_MAX;
    for(int i=1;i<=n;i++)
    {
        ll co=0;
        ll sum=bfs(i);
        for(int j =1;j<=n;j++)
        {
            if(vis[j])co++;
        }
        if(co==n)
            //cout << i << " " << dp[i] << endl;
            ans=min(ans,sum);
        

    }   
    cout << ans << endl;

    
    return 0; 
}
# Verdict Execution time Memory Grader output
1 Correct 2 ms 632 KB Output is correct
2 Correct 2 ms 632 KB Output is correct
3 Correct 2 ms 632 KB Output is correct
4 Correct 3 ms 632 KB Output is correct
5 Correct 2 ms 632 KB Output is correct
6 Correct 2 ms 632 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 632 KB Output is correct
2 Correct 2 ms 632 KB Output is correct
3 Correct 2 ms 632 KB Output is correct
4 Correct 3 ms 632 KB Output is correct
5 Correct 2 ms 632 KB Output is correct
6 Correct 2 ms 632 KB Output is correct
7 Correct 2 ms 636 KB Output is correct
8 Correct 3 ms 632 KB Output is correct
9 Correct 3 ms 632 KB Output is correct
10 Correct 4 ms 632 KB Output is correct
11 Correct 4 ms 632 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 632 KB Output is correct
2 Correct 2 ms 632 KB Output is correct
3 Correct 2 ms 632 KB Output is correct
4 Correct 3 ms 632 KB Output is correct
5 Correct 2 ms 632 KB Output is correct
6 Correct 2 ms 632 KB Output is correct
7 Correct 2 ms 636 KB Output is correct
8 Correct 3 ms 632 KB Output is correct
9 Correct 3 ms 632 KB Output is correct
10 Correct 4 ms 632 KB Output is correct
11 Correct 4 ms 632 KB Output is correct
12 Correct 10 ms 760 KB Output is correct
13 Correct 8 ms 764 KB Output is correct
14 Correct 4 ms 632 KB Output is correct
15 Correct 4 ms 760 KB Output is correct
16 Correct 5 ms 760 KB Output is correct
17 Correct 1118 ms 760 KB Output is correct
18 Correct 1143 ms 760 KB Output is correct