제출 #1263073

#제출 시각아이디문제언어결과실행 시간메모리
1263073rtriBosses (BOI16_bosses)C++20
100 / 100
433 ms1040 KiB
#include <bits/stdc++.h> using namespace std; int main() { int n; cin >> n; vector<vector<int>> valid_bosses(n); vector<vector<int>> children(n); for (int i = 0; i < n; i++) { int k; cin >> k; for (int j = 0; j < k; j++) { int idx; cin >> idx; idx--; valid_bosses[i].push_back(idx); children[idx].push_back(i); } } int res = 1e9; for (int root = 0; root < n; root++) { vector<int> par(n, -2); vector<int> ordering; deque<int> que; que.push_back(root); par[root] = -1; while (que.size()) { int node = que.front(); que.pop_front(); ordering.push_back(node); for (int cand : children[node]) if (par[cand] == -2) { par[cand] = node; que.push_back(cand); } } if (ordering.size() != n) continue; reverse(ordering.begin(), ordering.end()); vector<int> salary(n, 1); for (int elem : ordering) if (0 <= par[elem]) salary[par[elem]] += salary[elem]; int score = 0; for (int i = 0; i < n; i++) score += salary[i]; res = min(res, score); } cout << res << endl; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...