제출 #1286797

#제출 시각아이디문제언어결과실행 시간메모리
1286797MinhKienBosses (BOI16_bosses)C++20
100 / 100
351 ms740 KiB
#include <iostream> #include <vector> #include <queue> using namespace std; const int N = 5010; const int INF = 1e9; int n, d[N], num, x; bool vis[N]; vector <int> v[N]; int calc(int i) { fill_n(vis + 1, n, false); d[i] = 1; queue <int> q; q.push(i); vis[i] = true; int sum = 0, cnt = 0; while (!q.empty()) { int p = q.front(); q.pop(); ++cnt; sum += d[p]; for (int z: v[p]) { if (vis[z]) continue; vis[z] = true; d[z] = d[p] + 1; q.push(z); } } if (cnt < n) return INF; return sum; } int main() { cin.tie(0); cout.tie(0); ios_base::sync_with_stdio(false); cin >> n; for (int i = 1; i <= n; ++i) { cin >> num; while (num--) { cin >> x; v[x].push_back(i); } } int ans = INF; for (int i = 1; i <= n; ++i) { ans = min(ans, calc(i)); } cout << ans << "\n"; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...