题目
#include<bits/stdc++.h>
#define tin int
#define itn int
#define tni int
#define nit int
#define nti int
using namespace std;
const int maxn=5e5+5;
int n,a[maxn],b[maxn],d[maxn],far;
vector<int>v[maxn];
void addedge(nit u,tni k){//读入函数;
v[u].push_back(k);
v[k].push_back(u);
}
void dfs(tin u,nit fa){
if(u>far) far =u;
for(int i=0;i<v[u].size();i++){
int x=v[u][i];//本行第i个
if(x==fa) continue;//如果是上一个,跳过
u=x+1;
dfs(x,u);
}
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
cin>>b[i];
addedge(a[i],b[i]);
}
d[1]=0;dfs(1,0);
d[far]=0;dfs(far,0);
cout<<d[far];
return 0;
}