Submission #480411

# Submission time Handle Problem Language Result Execution time Memory
480411 2021-10-16T06:16:43 Z inventiontime Bosses (BOI16_bosses) C++17
100 / 100
745 ms 664 KB
#include <bits/stdc++.h>
using namespace std;

#define pb push_back

typedef vector<int> vi;

const int MAXN = 5005;

vi adj[MAXN];
int level[MAXN];
int of_level[MAXN];
int size[MAXN];
bool vis[MAXN];

int N;
int min_res = INT_MAX;

void clear() {
    for(int i = 0; i <= N; i++) {
        vis[i] = false;
        of_level[i] = 0;
    }
}

int main() {
    cin >> N;

    int k, x;
    for(int i = 1; i <= N; i++) {
        cin >> k;
        while(k--) {
            cin >> x;
            adj[x].pb(i);
        }
    }

    for(int r = 1; r <= N; r++) {
        clear();
        vis[r] = true;
        level[r] = 1;
        of_level[1]++;

        queue<int> q;
        q.push(r);

        while(!q.empty()) {
            int u = q.front(); q.pop();

            for(auto v : adj[u]) if(!vis[v]) {
                vis[v] = true;
                level[v] = level[u] + 1;
                of_level[level[v]]++;
                q.push(v);
            }
        }

        int nodes = 0;
        int result = 0;
        for(int i = 1; i <= N; i++) {
            if(of_level[i] == 0) break;
            nodes += of_level[i];
            result += of_level[i]*i;
        }

        if(nodes == N) min_res = min(min_res, result);
    }

    cout << min_res << endl;

    return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 332 KB Output is correct
2 Correct 1 ms 332 KB Output is correct
3 Correct 1 ms 332 KB Output is correct
4 Correct 1 ms 332 KB Output is correct
5 Correct 1 ms 412 KB Output is correct
6 Correct 1 ms 332 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 332 KB Output is correct
2 Correct 1 ms 332 KB Output is correct
3 Correct 1 ms 332 KB Output is correct
4 Correct 1 ms 332 KB Output is correct
5 Correct 1 ms 412 KB Output is correct
6 Correct 1 ms 332 KB Output is correct
7 Correct 1 ms 332 KB Output is correct
8 Correct 1 ms 332 KB Output is correct
9 Correct 1 ms 332 KB Output is correct
10 Correct 1 ms 332 KB Output is correct
11 Correct 1 ms 332 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 332 KB Output is correct
2 Correct 1 ms 332 KB Output is correct
3 Correct 1 ms 332 KB Output is correct
4 Correct 1 ms 332 KB Output is correct
5 Correct 1 ms 412 KB Output is correct
6 Correct 1 ms 332 KB Output is correct
7 Correct 1 ms 332 KB Output is correct
8 Correct 1 ms 332 KB Output is correct
9 Correct 1 ms 332 KB Output is correct
10 Correct 1 ms 332 KB Output is correct
11 Correct 1 ms 332 KB Output is correct
12 Correct 5 ms 460 KB Output is correct
13 Correct 4 ms 588 KB Output is correct
14 Correct 133 ms 556 KB Output is correct
15 Correct 7 ms 572 KB Output is correct
16 Correct 559 ms 648 KB Output is correct
17 Correct 722 ms 664 KB Output is correct
18 Correct 745 ms 660 KB Output is correct