Submission #220485

#TimeUsernameProblemLanguageResultExecution timeMemory
220485CalicoBosses (BOI16_bosses)C++17
67 / 100
1582 ms980 KiB
#include <bits/stdc++.h> using namespace std; int n, ans = 1000000000; vector<int> adj[5001]; vector<int> adj_tr[5001]; int dp[5001], dist[5001], prv[5001], vis[5001]; void dfs(int now) { int s = 0; for (int u: adj_tr[now]) { dfs(u); s += dp[u]; } dp[now] = s+1; } int bfs(int fi) { for (int i = 1; i <= n; i++) { adj_tr[i].clear(); } memset(dp, 0, sizeof(dp)); memset(dist, 0, sizeof(dist)); memset(prv, 0, sizeof(prv)); memset(vis, 0, sizeof(vis)); queue<int> q; q.push(fi); dist[fi] = 1; while (q.size()) { int now = q.front(); q.pop(); if (vis[now]) continue; vis[now] = 1; for (int u: adj[now]) { if (dist[u] == 0) { dist[u] = dist[now] + 1; q.push(u); prv[u] = now; } } } for (int i = 1; i <= n; i++) { if (i != fi) { if (prv[i] == 0) return ans; adj_tr[prv[i]].push_back(i); } } dfs(fi); int rs = 0; for (int i = 1; i <= n; i++) { rs += dp[i]; } return rs; } signed main() { //ios::sync_with_stdio(0); cin.tie(0); scanf("%d", &n); for (int i = 1; i <= n; i++) { int k; scanf("%d", &k); while (k--) { int x; scanf("%d", &x); adj[x].push_back(i); } } for (int i = 1; i <= n; i++) { ans = min(ans, bfs(i)); } printf("%d\n", ans); return 0; }

Compilation message (stderr)

bosses.cpp: In function 'int main()':
bosses.cpp:61:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d", &n);
  ~~~~~^~~~~~~~~~
bosses.cpp:63:15: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   int k; scanf("%d", &k);
          ~~~~~^~~~~~~~~~
bosses.cpp:65:16: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
    int x; scanf("%d", &x);
           ~~~~~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...