제출 #863228

#제출 시각아이디문제언어결과실행 시간메모리
863228TAhmed33Cijanobakterije (COCI21_cijanobakterije)C++98
12 / 70
56 ms15924 KiB
#include <bits/stdc++.h> using namespace std; const int MAXN = 1e5 + 25; vector <int> adj[MAXN]; int dp[MAXN][2]; bool vis[MAXN]; void dfs (int pos, int par) { vis[pos] = 1; int mx1 = 0, mx2 = 0; for (auto j : adj[pos]) { if (j == par) continue; dfs(j, pos); if (1 + dp[j][1] > mx1) { mx2 = mx1; mx1 = dp[j][1]; } else if (dp[j][1] > mx2) { mx2 = dp[j][1]; } } dp[pos][0] = 1 + mx1 + mx2; dp[pos][1] = 1 + mx1; } int main () { int mx = 0; int n, m; cin >> n >> m; for (int i = 1; i <= m; i++) { int a, b; cin >> a >> b; adj[a].push_back(b); adj[b].push_back(a); } for (int i = 1; i <= n; i++) { if (!vis[i]) { dfs(i, -1); mx += dp[i][0]; } } cout << mx << '\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...