Pagini recente » Cod sursa (job #348250) | Cod sursa (job #2637376) | Cod sursa (job #24368) | Cod sursa (job #2087258) | Cod sursa (job #1554875)
#include <cstdio>
#define MAX 100000
using namespace std;
struct nodul{
int val;
nodul *next;
};
nodul *v[MAX+1];
void adauga(int nod, int vecin)
{
nodul *aux;
aux=new nodul;
aux->val=vecin;
aux->next=v[nod];
v[nod]=aux;
}
int viz[MAX+1], coada[MAX+1];
int bfs(int nod)
{
nodul *aux;
int ic=1, sf=1;
viz[nod]=1;
coada[ic]=nod;
while(ic<=sf)
{
aux=v[coada[ic]];
while(aux!=NULL)
{
if(viz[aux->val]==0)
{
viz[aux->val]=viz[coada[ic]]+1;
coada[++sf]=aux->val;
}
aux=aux->next;
}
ic++;
}
return coada[sf];
}
int main()
{
freopen("darb.in", "r", stdin);
freopen("darb.out", "w", stdout);
int n, s, l, i, x, y;
scanf("%d", &n);
for(i=1;i<n;i++)
{
scanf("%d%d", &x, &y);
adauga(x, y);
adauga(y, x);
}
s=bfs(1);
for(i=1;i<=n;i++)
viz[i]=0;
l=bfs(s);
printf("%d", viz[l]);
return 0;
}