Submission #1112159

#TimeUsernameProblemLanguageResultExecution timeMemory
1112159PagodePaivaBosses (BOI16_bosses)C++17
100 / 100
414 ms720 KiB
#include<bits/stdc++.h>

using namespace std;

const int N = 5010;
vector <int> g[N];
int mark[N];

int main(){
    int n;
    cin >> n;
    for(int i = 1;i <= n;i++){
        int x;
        cin >> x;
        for(int j = 0;j < x;j++){
            int t;
            cin >> t;
            g[t].push_back(i);
        }
    }
    int res = 1e9;
    for(int v = 1;v <= n;v++){
        for(int i = 1;i <= n;i++){
            mark[i] = 0;
        }
        queue <int> q;
        mark[v] = 1;
        q.push(v);
        int sum = 0;
        while(!q.empty()){
            int t = q.front();
            q.pop();
            sum += mark[t];
            for(auto x : g[t]){
                if(mark[x] > 0) continue;
                mark[x] = mark[t]+1;
                q.push(x);
            }
        }
        bool aux = true;
        for(int i = 1;i <= n;i++){
            if(mark[i] == 0) aux = false;
        }
        if(aux) res = min(res, sum);
    }
    cout << res << '\n';
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...