Submission #1317570

#TimeUsernameProblemLanguageResultExecution timeMemory
1317570michael12Bosses (BOI16_bosses)C++20
0 / 100
1 ms332 KiB
#include<bits/stdc++.h>
#define ff first
#define ss second
#define pb push_back
#define mp make_pair
#define int long long
using namespace std;
const int maxn = 5e5;
const int inf = 1e18;
signed main() {
    int t;
    cin >> t;
    vector<vector<int>> f(t);
    for(int i = 0; i < t; i++){
        int a;
        cin >> a;
        for(int j = 0; j < a; j++){
            int V;
            cin >> V;
            V--;
            f[V].push_back(i);
        }
    }   
    int mn = inf;
    for(int s = 0; s < t; s++){
        int sum = 0;
        queue<int> pq;
        pq.push(s);
        vector<bool> vis(t, false);
        vector<int> d(t);
        vis[s] = true;
        d[s] = 1;
        while(!pq.empty()){
            int R = pq.front();
            pq.pop();
            for(auto T : f[R]){
                if(!vis[T]){
                    d[T] = d[R] + 1;
                    vis[T] = true;
                    pq.push(T);
                }
            }
        }
        for(int i = 0; i < t; i++){
            sum += d[i];
        }
        mn = min(mn, sum);
    }
    cout << mn;

}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...