Submission #107196

#TimeUsernameProblemLanguageResultExecution timeMemory
107196dolphingarlicBosses (BOI16_bosses)C++14
0 / 100
2 ms640 KiB
#include <bits/stdc++.h> #pragma GCC optimize("O3") #define FOR(i, x, y) for(int i = x; i < y; i++) typedef long long ll; using namespace std; vector<int> graph[5001], tree[5001]; int mn = INT_MAX; bool visited[5001]; void bfs(int node) { queue<int> q; fill(visited, visited + 5001, false); fill(tree, tree + 5001, vector<int>()); q.push(node); visited[node] = true; while (!q.empty()) { int curr = q.front(); q.pop(); for (auto& i : graph[curr]) { if (!visited[i]) { visited[i] = true; q.push(i); tree[curr].push_back(i); } } } } int dp[5001], sum; void dfs(int node) { dp[node] = 1; for (auto& i : tree[node]) { dfs(i); dp[node] += dp[i]; } sum += dp[node]; } int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); int n; cin >> n; FOR(i, 1, n + 1) { int x; cin >> x; FOR(j, 0, x) { int k; cin >> k; graph[k].push_back(i); } } FOR(i, 1, n + 1) { bfs(i); sum = 0; dfs(i); mn = min(sum, mn); } cout << mn << '\n'; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...