답안 #973743

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
973743 2024-05-02T10:30:12 Z a_l_i_r_e_z_a Bosses (BOI16_bosses) C++17
100 / 100
450 ms 728 KB
// In the name of God
// Hope is last to die

#include <bits/stdc++.h>
using namespace std;
 
#pragma GCC optimize("O3,unroll-loops")
// #pragma GCC optimize("avx2")

typedef long long ll;
typedef long double ld;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;

#define pb push_back
// #define int long long
#define S second
#define F first
#define mp make_pair
#define smax(xyxy, yxy) (xyxy) = max((xyxy), (yxy))
#define smin(xyxy, yxy) (xyxy) = min((xyxy), (yxy))
#define all(xyxy) (xyxy).begin(), (xyxy).end()
#define len(xyxy) ((int)(xyxy).size())

const int maxn = 5000 + 5;
const int inf = 1e9 + 7;
int n, d[maxn];
vector<int> adj[maxn];
queue<int> q;

ll bfs(int v){
    memset(d, 63, sizeof d);
    while(q.size()) q.pop();
    d[v] = 0;
    q.push(v);
    while(q.size()){
        v = q.front();
        q.pop();
        for(auto u: adj[v]){
            if(d[u] > d[v] + 1){
                d[u] = d[v] + 1;
                q.push(u);
            }
        }
    }
    ll res = 0;
    for(int i = 0; i < n; i++) res += d[i]; 
    return res;
}

int32_t main()
{
    ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
    
    cin >> n;
    for(int i = 0; i < n; i++){
        int k; cin >> k;
        for(int j = 0; j < k; j++){
            int u; cin >> u;
            u--;
            adj[u].pb(i);
        }
    }
    ll ans = inf;
    for(int i = 0; i < n; i++) smin(ans, bfs(i));
    cout << ans + n << '\n';

    return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB Output is correct
2 Correct 1 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB Output is correct
2 Correct 1 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 0 ms 348 KB Output is correct
8 Correct 1 ms 348 KB Output is correct
9 Correct 1 ms 344 KB Output is correct
10 Correct 1 ms 348 KB Output is correct
11 Correct 1 ms 348 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB Output is correct
2 Correct 1 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 0 ms 348 KB Output is correct
8 Correct 1 ms 348 KB Output is correct
9 Correct 1 ms 344 KB Output is correct
10 Correct 1 ms 348 KB Output is correct
11 Correct 1 ms 348 KB Output is correct
12 Correct 5 ms 604 KB Output is correct
13 Correct 3 ms 604 KB Output is correct
14 Correct 76 ms 644 KB Output is correct
15 Correct 7 ms 604 KB Output is correct
16 Correct 450 ms 708 KB Output is correct
17 Correct 399 ms 604 KB Output is correct
18 Correct 409 ms 728 KB Output is correct