Pagini recente » Cod sursa (job #2342814) | Cod sursa (job #1220971) | Cod sursa (job #551809) | Cod sursa (job #2901307) | Cod sursa (job #2639634)
#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);
cin>>N;
for(int i=1;i<N;++i) {
int a, b;
cin>>a>>b;
adj[a].push_back(b);
adj[b].push_back(a);
}
dfs(1);
cout<<sol<<'\n';
return 0;
}