Pagini recente » Cod sursa (job #2198901) | Cod sursa (job #2610506)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("darb.in");
ofstream g("darb.out");
struct nod
{
int info;
nod* urm;
}*pt[100005];
int n,d,niv[100005];
void InserareNod(nod* &p,int val)
{
nod* cap = new nod;
cap->info = val;
cap->urm = p;
p = cap;
}
int BF(int xp)
{
int y,p,u,C[n+1];
p = u = 1;
C[1] = xp;
niv[xp] = 1;
while( p <= u )
{
nod* cap = pt[C[p]];
while( cap != NULL )
{
y = cap->info;
if( niv[y] == 0 )
{
u++;
C[u] = y;
niv[y] = niv[C[p]] + 1;
}
cap = cap->urm;
}
p++;
}
return C[n];
}
int main()
{
int a,b,xp;
f>>n;
for(int i = 1 ; i <= n ; i++)
pt[i] = NULL;
for(int i = 1 ; i < n ; i++)
{
f>>a>>b;
InserareNod(pt[a],b);
InserareNod(pt[b],a);
}
xp = BF(1);
for(int i = 1 ; i <= n ; i++)
niv[i] = 0;
xp = BF(xp);
g<<niv[xp];
return 0;
}