Submission #51590

#TimeUsernameProblemLanguageResultExecution timeMemory
51590thiago4532Bosses (BOI16_bosses)C++17
0 / 100
2 ms664 KiB
#include <bits/stdc++.h> #define gc getchar #define rep(i, a, b) for(int i=a;i<=b;i++) #define rep2(i, a, b) for(int i=a;i>=b;--i) #define wipe(a, b) memset(a, b, sizeof a); #define pb push_back using namespace std; const int maxn = 5010; vector<int> bosses[maxn], employ[maxn]; int sz[maxn]; inline int scan(){ int n=0, x=gc(), s=1; for(;x<'0'||x>'9';x=gc()) if(x=='-') s=-1; for(;x>='0'&&x<='9';x=gc()) n = 10*n + x - '0'; return n*s; } bool mark[maxn]; int dfs(int u){ mark[u] = true; sz[u] = 1; vector<int> tutu; for(auto v : employ[u]) if(!mark[v]) mark[v] = true, tutu.push_back(v); for(auto v : tutu) sz[u] += dfs(v); return sz[u]; } int main(){ ios::sync_with_stdio(false), cin.tie(0); int n = scan(); rep(i, 1, n){ int k = scan(); rep(j, 1, k){ int x = scan(); bosses[i].push_back(x); employ[x].push_back(i); } } int maior=-0x3f3f3f3f, l=0; rep(u, 1, n){ if(maior < (int)employ[u].size()){ maior = employ[u].size(); l = u; } else if(maior == employ[u].size() && bosses[l].size() > bosses[u].size()){ maior = employ[u].size(); l = u; } } dfs(l); int ans=0; rep(i, 1, n) ans += sz[i]; cout << ans << "\n"; return 0; }

Compilation message (stderr)

bosses.cpp: In function 'int main()':
bosses.cpp:50:17: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   else if(maior == employ[u].size() && bosses[l].size() > bosses[u].size()){
           ~~~~~~^~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...