Pagini recente » Cod sursa (job #754774) | Cod sursa (job #519323) | Cod sursa (job #2760180) | Cod sursa (job #2810777) | Cod sursa (job #2639636)
#include <bits/stdc++.h>
using namespace std;
const int NMAX=(int)1e5;
int N, M, dep[NMAX+1], sol;
vector<int> adj[NMAX+1];
bool vis[NMAX+1];
void dfs(int a) {
dep[a]=1;
vis[a]=1;
for(auto &b:adj[a]) {
if(vis[b]==0) {
dfs(b);
dep[a]=max(dep[a], dep[b]+1);
}
}
int cur=0;
for(auto &b:adj[a]) {
sol=max(sol, 1+dep[b]+cur);
cur=max(cur, dep[b]);
}
}
int main() {
freopen("darb.in", "r", stdin);
freopen("darb.out", "w", stdout);
scanf("%d", &N);
for(int i=1;i<N;++i) {
int a, b;
scanf("%d %d", &a, &b);
adj[a].push_back(b);
adj[b].push_back(a);
}
dfs(1);
printf("%d\n", sol);
return 0;
}