Submission #337279

#TimeUsernameProblemLanguageResultExecution timeMemory
337279boykutShymbulak (IZhO14_shymbulak)C++14
50 / 100
605 ms876 KiB
#include <bits/stdc++.h> using namespace std; const int MAXN = 5005; const int INF = 2'000'000'000; int n; vector<int> g[MAXN]; int cur = 0, cnt = 0; void bfs(int a) { int dist[MAXN]; fill (dist, dist + MAXN, INF); queue < int > q; q.push(a); dist[a] = 0; while (!q.empty()) { int v = q.front(); q.pop(); for (auto i : g[v]) { if (dist[i] >= dist[v] + 1) { q.push(i); dist[i] = dist[v] + 1; if (dist[i] == cur) { cnt++; } else if (dist[i] > cur) { cur = dist[i]; cnt = 1; } } } } return; } signed main() { ios::sync_with_stdio(0); cin.tie(0); cin >> n; for (int i = 0; i < n; i++) { int a, b; cin >> a >> b; g[a].push_back(b); g[b].push_back(a); } int ansD = 0, cntWay = 0; for (int i = 1; i <= n; i++) { cur = 0; cnt = 0; bfs(i); if (cur == ansD) { cntWay += cnt; } else if (cur > ansD) { ansD = cur; cntWay = cnt; } } cout << cntWay / 2 << endl; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...