Submission #530927

#TimeUsernameProblemLanguageResultExecution timeMemory
530927ivlsCijanobakterije (COCI21_cijanobakterije)C++14
15 / 70
194 ms12100 KiB
#include <bits/stdc++.h> using namespace std; mt19937 rnd(chrono::steady_clock::now().time_since_epoch().count()); using ll = long long; const int inf = 2e9; int n, m, mx, nm, dst[100100]; vector<int> g[100100]; bool used[100100]; void dfs(int v, int p = -1) { used[v] = 1; dst[v] = (p == -1 ? 0 : dst[p] + 1); if (dst[v] > mx) { mx = dst[v]; nm = v; } for (auto u : g[v]) if (u != p) dfs(u, v); } int diam(int v) { mx = 0; dfs(v); mx = 0; dfs(nm); return mx + 1; } int main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin >> n >> m; for (int i = 1; i <= m; i++) { int u, v; cin >> u >> v; g[u].push_back(v); g[v].push_back(u); } int ans = 0; for (int i = 1; i <= n; i++) if (!used[i]) ans += diam(i); cout << ans << '\n'; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...