제출 #799186

#제출 시각아이디문제언어결과실행 시간메모리
799186tlnk07Cijanobakterije (COCI21_cijanobakterije)C++17
12 / 70
51 ms12168 KiB
#include<bits/stdc++.h> using namespace std; #define int long long long long n, m, x, y, dis[100001], maxi, ans = 0; vector<int> vec[100001]; bool check[100001]; void dfs(int x, int p, int h) { check[x] = true; for(int c : vec[x]) if(c != p) dfs(c, x, h + 1); maxi = max(maxi, h); } signed main() { cin >> n >> m; while(m--) { cin >> x >> y; vec[x].push_back(y); vec[y].push_back(x); } for(int i = 1; i <= n; ++i) { if(!check[i]) { check[i] = true; priority_queue<int> pri; for(int c : vec[i]) { maxi = -1; dfs(c, i, 1); pri.push(maxi); } int cnt = 0; while(!pri.empty() && cnt < 2) { ans += pri.top(); ++cnt; pri.pop(); } ++ans; } } cout << ans; }
#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...