Submission #951534

# Submission time Handle Problem Language Result Execution time Memory
951534 2024-03-22T05:14:54 Z Faisal_Saqib Bosses (BOI16_bosses) C++17
100 / 100
949 ms 1040 KB
#include <bits/stdc++.h>
using namespace std;
const int N=5e3+10;
vector<int> tp[N];
vector<int> ma[N];
int h[N],val[N];
int compute_answer(int&v)
{
    val[v]=0;
    int oth=0;
    for(int&ap:ma[v])
    {
        oth+=compute_answer(ap);
        val[v]+=val[ap];
    }
    val[v]++;
    return val[v]+oth;
}
int main()
{
    cin.tie(0);
    cout.tie(0);
    ios::sync_with_stdio(0);
    int n;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        int k;
        cin>>k;
        for(int j=1;j<=k;j++)
        {
            int p;
            cin>>p;
            tp[p].push_back(i);
        }
    }
    int ans=1e9;
        int vp=0;
    queue<int> q;
    for(int i=1;i<=n;i++)
    {
        for(int ap=1;ap<=n;ap++)
        {
            ma[ap].clear();
            h[ap]=1e9;
        }
        vp=0;
        {
            //Time = O()
            q.push(i);
            h[i]=0;
            while(q.size())
            {
                int f=q.front();
                vp++;
                q.pop();
                for(int&ap:tp[f])
                {
                    if((h[ap]>(h[f]+1)))
                    {
                        h[ap]=h[f]+1;
                        ma[f].push_back(ap);
                        q.push(ap);
                    }
                }
            }
        }
        if(vp!=n)
            continue;
        ans=min(ans,compute_answer(i));
    }
    cout<<ans<<'\n';
    return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 604 KB Output is correct
2 Correct 1 ms 600 KB Output is correct
3 Correct 0 ms 604 KB Output is correct
4 Correct 0 ms 604 KB Output is correct
5 Correct 1 ms 604 KB Output is correct
6 Correct 1 ms 604 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 604 KB Output is correct
2 Correct 1 ms 600 KB Output is correct
3 Correct 0 ms 604 KB Output is correct
4 Correct 0 ms 604 KB Output is correct
5 Correct 1 ms 604 KB Output is correct
6 Correct 1 ms 604 KB Output is correct
7 Correct 1 ms 604 KB Output is correct
8 Correct 1 ms 600 KB Output is correct
9 Correct 0 ms 604 KB Output is correct
10 Correct 1 ms 604 KB Output is correct
11 Correct 1 ms 604 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 604 KB Output is correct
2 Correct 1 ms 600 KB Output is correct
3 Correct 0 ms 604 KB Output is correct
4 Correct 0 ms 604 KB Output is correct
5 Correct 1 ms 604 KB Output is correct
6 Correct 1 ms 604 KB Output is correct
7 Correct 1 ms 604 KB Output is correct
8 Correct 1 ms 600 KB Output is correct
9 Correct 0 ms 604 KB Output is correct
10 Correct 1 ms 604 KB Output is correct
11 Correct 1 ms 604 KB Output is correct
12 Correct 3 ms 604 KB Output is correct
13 Correct 4 ms 604 KB Output is correct
14 Correct 145 ms 876 KB Output is correct
15 Correct 18 ms 860 KB Output is correct
16 Correct 539 ms 968 KB Output is correct
17 Correct 940 ms 1036 KB Output is correct
18 Correct 949 ms 1040 KB Output is correct