Submission #563710

#TimeUsernameProblemLanguageResultExecution timeMemory
563710racsosabeShymbulak (IZhO14_shymbulak)C++14
50 / 100
510 ms676 KiB
#include<bits/stdc++.h> using namespace::std; const int N = 5000 + 5; int n; int D[N]; int cnt[N]; vector<int> G[N]; pair<int, int> BFS(int src){ memset(D, -1, sizeof D); memset(cnt, 0, sizeof cnt); D[src] = 0; queue<int> Q; Q.emplace(src); cnt[src] = 1; while(!Q.empty()){ int u = Q.front(); Q.pop(); for(int v : G[u]){ if(~D[v]){ if(D[v] == D[u] + 1) cnt[v] += cnt[u]; continue; } D[v] = D[u] + 1; cnt[v] = cnt[u]; Q.emplace(v); } } int maxi = *max_element(D + 1, D + n + 1); int r = 0; for(int i = 1; i <= n; i++) if(maxi == D[i]) r += cnt[i]; return {maxi, r}; } int main(){ scanf("%d", &n); for(int i = 1; i <= n; i++){ int u, v; scanf("%d %d", &u, &v); G[u].emplace_back(v); G[v].emplace_back(u); } int ans = 0; int best = -1; for(int i = 1; i <= n; i++){ pair<int, int> cur = BFS(i); if(best == cur.first) ans += cur.second; else if(best < cur.first){ best = cur.first; ans = cur.second; } } cout << ans / 2 << endl; return 0; }

Compilation message (stderr)

shymbulak.cpp: In function 'int main()':
shymbulak.cpp:37:7: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   37 |  scanf("%d", &n);
      |  ~~~~~^~~~~~~~~~
shymbulak.cpp:40:8: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   40 |   scanf("%d %d", &u, &v);
      |   ~~~~~^~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...