Submission #951491

# Submission time Handle Problem Language Result Execution time Memory
951491 2024-03-22T03:44:16 Z Muhammad_Aneeq Bosses (BOI16_bosses) C++17
100 / 100
884 ms 1028 KB
/*
بسم الله الرحمن الرحيم
Author:
                          (:Muhammad Aneeq:)
*/

#include <iostream>
#include <vector>
#include <queue>
using namespace std;
int const N=5e3+10;
vector<int>nei[N]={};
bool vis[N]={};
vector<int>gr[N]={};
int val[N]={};
long long cost=0;
void make_gr(int n)
{
    queue<int>Q;
    Q.push(n);
    while (Q.size())
    {
        int s=Q.front();
        Q.pop();
        for (auto i:gr[s])
            if (!vis[i])
            {
                vis[i]=1;
                nei[s].push_back(i);
                Q.push(i);
            }
    }
}   
void dfs(int n)
{
    int val1=0;
    for (auto i:nei[n])
    {
        dfs(i);
        val1+=val[i];
    }
    val[n]=val1+1;
    cost+=val[n];
}
inline void solve()
{
    int n;
    cin>>n;
    for (int i=1;i<=n;i++)
    {
        int k;
        cin>>k;
        while (k--)
        {
            int x;
            cin>>x;
            gr[x].push_back(i);
        }
    }
    long long ans=1e15+10;
    for (int i=1;i<=n;i++)
    {
        for (int j=1;j<=n;j++)
        {
            vis[j]=0,nei[j]={};
            val[i]=0;
        }
        vis[i]=1;
        make_gr(i);
        bool w=0;
        for (int i=1;i<=n;i++)
        {
            if (!vis[i])
                w=1;
        }
        if (w)
            continue;
        cost=0;
        dfs(i);
        ans=min(ans,cost);
    }
    cout<<ans<<endl;
}
int main()
{
    ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
        solve();
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 600 KB Output is correct
2 Correct 0 ms 604 KB Output is correct
3 Correct 0 ms 604 KB Output is correct
4 Correct 0 ms 600 KB Output is correct
5 Correct 1 ms 856 KB Output is correct
6 Correct 0 ms 604 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 600 KB Output is correct
2 Correct 0 ms 604 KB Output is correct
3 Correct 0 ms 604 KB Output is correct
4 Correct 0 ms 600 KB Output is correct
5 Correct 1 ms 856 KB Output is correct
6 Correct 0 ms 604 KB Output is correct
7 Correct 1 ms 600 KB Output is correct
8 Correct 1 ms 604 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 856 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 600 KB Output is correct
2 Correct 0 ms 604 KB Output is correct
3 Correct 0 ms 604 KB Output is correct
4 Correct 0 ms 600 KB Output is correct
5 Correct 1 ms 856 KB Output is correct
6 Correct 0 ms 604 KB Output is correct
7 Correct 1 ms 600 KB Output is correct
8 Correct 1 ms 604 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 856 KB Output is correct
12 Correct 4 ms 604 KB Output is correct
13 Correct 3 ms 604 KB Output is correct
14 Correct 157 ms 1008 KB Output is correct
15 Correct 28 ms 860 KB Output is correct
16 Correct 540 ms 968 KB Output is correct
17 Correct 884 ms 1024 KB Output is correct
18 Correct 866 ms 1028 KB Output is correct