Submission #508483

#TimeUsernameProblemLanguageResultExecution timeMemory
508483Hacv16Cijanobakterije (COCI21_cijanobakterije)C++17
70 / 70
80 ms60920 KiB
#include<bits/stdc++.h> using namespace std; #pragma GCC optimize("Ofast") #pragma GCC target("avx,avx2,fma") #define endl '\n' #define fr first #define sc second #define mp make_pair #define pb push_back #define bn binary_search #define lb lower_bound #define up upper_bound #define np next_permutation #define all(x) x.begin(), x.end() #define sz(x) (int) x.size() #define mdc(x, y) __gcd(x, y) #define dbg(x) cout << #x << ": " << "[ " << x << " ]\n" typedef int ii; typedef long long ll; typedef unsigned long long ull; typedef pair<int, int> pii; typedef pair<ll, ll> pll; const int MAX = 2e6 + 15; const int MOD = 1e9 + 7; const int INF = 0x3f3f3f3f; const ll LLINF = 0x3f3f3f3f3f3f3f3f; const int VAR[4] = {-1, 1, 0, 0}; ll n, m, v1, v2, ans, mx, id; vector<int> adj[MAX], seen(MAX, false); void setIO(){ ios_base::sync_with_stdio(false); cin.tie(NULL); } void dfs(int x, int p, int d){ seen[x] = true; if(d > mx) id = x, mx = d; for(auto v : adj[x]){ if(v == p) continue; dfs(v, x, d + 1); } } int diam(int r){ mx = -INF; dfs(r, -1, 1); mx = -INF; dfs(id, -1, 1); return mx; } int main(){ setIO(); cin >> n >> m; while(m--){ int u, v; cin >> u >> v; adj[u].pb(v); adj[v].pb(u); } for(int i = 1; i <= n; i++){ if(!seen[i]) ans += diam(i); } cout << ans << '\n'; return 0; }
#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...