Submission #329062

#TimeUsernameProblemLanguageResultExecution timeMemory
329062iliccmarkoBosses (BOI16_bosses)C++14
0 / 100
1 ms620 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define endl "\n" #define INF 1000000000 #define LINF 1000000000000000LL #define pb push_back #define all(x) x.begin(), x.end() #define len(s) (int)s.size() #define test_case { int t; cin>>t; while(t--)solve(); } #define input(n, v) {for(int i = 0;i<n;i++) cin>>v[i];} #define output(n, v) {for(int i = 0;i<n;i++) cout<<v[i]<<" "; cout<<endl;} #define single_case solve(); #define line cout<<"------------"<<endl; #define ios { ios_base::sync_with_stdio(false); cin.tie(NULL); } using namespace std; int n; const int N = 5e3 + 5; vector<vector<int> > v(N); vector<vector<int> > g(N); bool vidjen[N]; int dp[N]; int dfs(int u, int pret) { ll a = 0; ll ans = 0; for(int x : g[u]) { if(x==pret) continue; ans += dfs(x, u); a += dp[x]; } dp[u] = a + 1LL; return dp[u] + ans; } int make_graph(int u) { memset(vidjen, false, sizeof(bool)*n); queue<int> q; q.push(u); for(int i = 0;i<n;i++) g[i].clear(); vidjen[u] = 1; while(len(q)) { int top = q.front(); q.pop(); for(int x : v[top]) { if(vidjen[x]) continue; q.push(x); g[top].pb(x); vidjen[x] = 1; } } for(int i = 0;i<n;i++) dp[i] = 0; for(int i = 0;i<n;i++) if(!vidjen[i]) return LINF; return dfs(u, -1); } int main() { //ios scanf("%d", &n); for(int i = 0;i<n;i++) { int k; cin>>k; while(k--) { int a; cin>>a; a--; v[a].pb(i); } } int res = LINF; for(int i = 0;i<n;i++) { res = min(res, make_graph(i)); } printf("%d", res); return 0; }

Compilation message (stderr)

bosses.cpp: In function 'int make_graph(int)':
bosses.cpp:6:14: warning: overflow in conversion from 'long long int' to 'int' changes value from '1000000000000000' to '-1530494976' [-Woverflow]
    6 | #define LINF 1000000000000000LL
      |              ^~~~~~~~~~~~~~~~~~
bosses.cpp:61:31: note: in expansion of macro 'LINF'
   61 |         if(!vidjen[i]) return LINF;
      |                               ^~~~
bosses.cpp: In function 'int main()':
bosses.cpp:6:14: warning: overflow in conversion from 'long long int' to 'int' changes value from '1000000000000000' to '-1530494976' [-Woverflow]
    6 | #define LINF 1000000000000000LL
      |              ^~~~~~~~~~~~~~~~~~
bosses.cpp:81:15: note: in expansion of macro 'LINF'
   81 |     int res = LINF;
      |               ^~~~
bosses.cpp:68:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   68 |     scanf("%d", &n);
      |     ~~~~~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...