Submission #24762

#TimeUsernameProblemLanguageResultExecution timeMemory
24762nibnalinBosses (BOI16_bosses)C++14
0 / 100
0 ms2316 KiB
#include <iostream> #include <cstdio> #include <vector> #include <set> using namespace std; const int maxn = int(5e3)+5, inf = int(1e9)+5; int n, D[maxn], P[maxn], val[maxn]; vector<int> graph[maxn], tree[maxn]; void dfs(int node) { val[node] = 1; for(auto it: tree[node]) { dfs(it); val[node] += val[it]; } } int solve(int node) { set<pair<int, int>> Q; for(int i = 0;i < n;i++) D[i] = inf; D[node] = 0; Q.insert({0, node}); P[node] = -1; while(!Q.empty()) { pair<int, int> top = *Q.begin(); Q.erase(Q.begin()); for(auto it: graph[top.second]) { if(D[it] > 1+D[top.second]) { if(D[it] != inf) Q.erase({D[it], it}); D[it] = 1+D[top.second]; P[it] = top.second; Q.insert({D[it], it}); } } } for(int i = 0;i < n;i++) tree[i].clear(); for(int i = 0;i < n;i++) { if(P[i] != -1) tree[P[i]].push_back(i); } dfs(node); int ret = 0; for(int i = 0;i < n;i++) ret += val[i]; //cout << "\n" << node << " " << " " << ret << "\n"; return ret; } int main(void) { int p, x; scanf("%d", &n); for(int i = 0;i < n;i++) { scanf("%d", &x); for(int j = 0;j < x;j++) { scanf("%d", &p); p--; graph[p].push_back(i); } } int res = inf; for(int i = 0;i < n;i++) res = min(res, solve(i)); printf("%d\n", res); }

Compilation message (stderr)

bosses.cpp: In function 'int main()':
bosses.cpp:62:17: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d", &n);
                 ^
bosses.cpp:65:18: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d", &x);
                  ^
bosses.cpp:68:19: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
    scanf("%d", &p);
                   ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...