제출 #1297966

#제출 시각아이디문제언어결과실행 시간메모리
1297966chithanhnguyenBosses (BOI16_bosses)C++20
0 / 100
1 ms712 KiB
#include <bits/stdc++.h> using namespace std; #define int long long #define ld long double #define pii pair<int, int> #define fi first #define se second #define __builtin_popcount __builtin_popcountll #define all(x) (x).begin(), (x).end() #define BIT(x, i) (((x) >> (i)) & 1) #define debug(a, l, r) for (int i = (l); i <= (r); ++i) cout << (a)[i] << ' '; cout << '\n'; const int MAXN = 5005; const int INF = 1e14 + 5; int n, dist[MAXN]; vector<int> adj[MAXN]; signed main() { #ifdef NCTHANH freopen("input.txt", "r", stdin); freopen("output.txt", "w", stdout); #endif ios_base::sync_with_stdio(0); cin.tie(nullptr); cout.tie(nullptr); cin >> n; for (int i = 1; i <= n; ++i) { int m; cin >> m; for (int j = 1; j <= m; ++j) { int x; cin >> x; adj[x].push_back(i); } } int res = INF; for (int s = 1; s <= n; ++s) { fill(dist + 1, dist + n + 1, INF); dist[s] = 1; queue<int> qu; qu.push(s); while (!qu.empty()) { int u = qu.front(); qu.pop(); for (int v : adj[u]) { if (dist[u] + 1 < dist[v]) { dist[v] = dist[u] + 1; qu.push(v); } } } int cur = accumulate(dist + 1, dist + n + 1, 0); res = min(res, cur); } cout << res; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...