제출 #1243855

#제출 시각아이디문제언어결과실행 시간메모리
1243855wedonttalkanymoreBosses (BOI16_bosses)C++20
100 / 100
397 ms788 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define pii pair<int, int>
#define fi first
#define se second
int n;
vector<int> adj[5005];
int length[5005], depth[5005];
int ans = 1e18;
void dijk(int u)
{
    for (int i = 1; i <= n; i++)
    {
        length[i] = 0;
        depth[i] = 0;
    }
    length[u] = 1;
    depth[u] = 1;
    queue<int> q;
    q.push(u);
    while (q.size())
    {
        int tmp = q.front();
        q.pop();
        for (int v : adj[tmp])
        {
            if (depth[v]) continue;
            depth[v] = depth[tmp] + 1;
            length[v] = length[tmp] + 1;
            q.push(v);
        }
    }
    int sum = 0;
    for (int i = 1; i <= n; i++)
    {
        if (length[i] == 0) return;
        sum += length[i];
    }
    if (sum < ans) ans = sum;
}
signed main()
{
    cin >> n;
    for (int i = 1; i <= n; i++)
    {
        int sz;
        cin >> sz;
        for (int j = 1; j <= sz; j++)
        {
            int x;
            cin >> x;
            adj[x].push_back(i);
        }
    }
    for (int i = 1; i <= n; i++)
        dijk(i);
    cout << ans;
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...