Pagini recente » Cod sursa (job #1371686) | Cod sursa (job #823610) | Cod sursa (job #1786995) | Cod sursa (job #1600489) | Cod sursa (job #1947601)
#include<bits/stdc++.h>
#define f first
#define s second
using namespace std;
const int N=100020;
int u, v[N], maxl, dr=1;
vector <int> lda[N];
pair <int, int> l[N];
void bfs(int st){
if(st>dr)return;
int nod=l[st].f;
int x=lda[nod].size();
for(int i=0;i<x;i++)if(!v[lda[nod][i]]){
v[lda[nod][i]]=1;
l[++dr].f=lda[nod][i];
l[dr].s=l[st].s+1;
}
bfs(st+1);
}
int main(){
int t, x, y;
int n;
freopen("darb.in", "r", stdin);
freopen("darb.out", "w", stdout);
scanf("%d", &n);
int m=n-1;
while(m--){
scanf("%d%d", &x, &y);
lda[x].push_back(y);
lda[y].push_back(x);
}
l[1].f=1;
l[1].s=1;
v[1]=1;
bfs(1);
for(int i=1;i<=n;i++){
v[i]=0;
}
l[1].f=l[dr].f;
l[1].s=1;
v[l[dr].f]=1;
dr=1;
bfs(1);
printf("%d", l[dr].s);
return 0;
}