Submission #768847

# Submission time Handle Problem Language Result Execution time Memory
768847 2023-06-28T18:22:34 Z raysh07 Bosses (BOI16_bosses) C++17
100 / 100
469 ms 720 KB
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define INF (int)1e18
#define f first
#define s second

mt19937_64 RNG(chrono::steady_clock::now().time_since_epoch().count());

void Solve() 
{
    int n; cin >> n;
    vector<vector<int>> adj(n);
    int ans = INF;
    
    for (int i = 0; i < n; i++){
        int k; cin >> k;
        while (k--){
            int x; cin >> x;
            x--;
            adj[x].push_back(i);
        }
    }
    
    for (int i = 0; i < n; i++){
        vector <int> d(n, INF);
        queue <int> q;
        q.push(i);
        d[i] = 1;
        
        while (!q.empty()){
            int u = q.front();
            q.pop();
            for (int v : adj[u]){
                if (d[v] == INF){
                    d[v] = d[u] + 1;
                    q.push(v);
                }
            }
        }
        
        int cnt = 0;
        for (auto x : d) {
            cnt += x;
            if (x == INF) break;
        }
        
        ans = min(ans, cnt);
    }
    
    cout << ans << "\n";
}

int32_t main() 
{
    auto begin = std::chrono::high_resolution_clock::now();
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    int t = 1;
   // cin >> t;
    for(int i = 1; i <= t; i++) 
    {
        //cout << "Case #" << i << ": ";
        Solve();
    }
    auto end = std::chrono::high_resolution_clock::now();
    auto elapsed = std::chrono::duration_cast<std::chrono::nanoseconds>(end - begin);
    cerr << "Time measured: " << elapsed.count() * 1e-9 << " seconds.\n"; 
    return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 0 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 0 ms 212 KB Output is correct
7 Correct 0 ms 212 KB Output is correct
8 Correct 1 ms 212 KB Output is correct
9 Correct 1 ms 212 KB Output is correct
10 Correct 1 ms 212 KB Output is correct
11 Correct 1 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 0 ms 212 KB Output is correct
7 Correct 0 ms 212 KB Output is correct
8 Correct 1 ms 212 KB Output is correct
9 Correct 1 ms 212 KB Output is correct
10 Correct 1 ms 212 KB Output is correct
11 Correct 1 ms 212 KB Output is correct
12 Correct 3 ms 468 KB Output is correct
13 Correct 3 ms 544 KB Output is correct
14 Correct 104 ms 596 KB Output is correct
15 Correct 18 ms 612 KB Output is correct
16 Correct 443 ms 720 KB Output is correct
17 Correct 429 ms 688 KB Output is correct
18 Correct 469 ms 680 KB Output is correct