Pagini recente » Cod sursa (job #2978746) | Cod sursa (job #1565384) | Cod sursa (job #951138) | Cod sursa (job #140988) | Cod sursa (job #1101812)
program diametru;
type lista=^celula;
celula=record
info:longint;
urm:lista;
end;
var a:array[1..10000] of lista;
c,d:array[1..10000] of longint;
n,m,i,p,u,x,y,nod:longint;
r:lista;
begin
assign(input,'darb.in'); reset(input);
assign(output,'darb.out'); rewrite(output);
readln(n);
for i:=1 to n-1 do begin
readln(x,y);
new(r);
r^.info:=y; r^.urm:=a[x]; a[x]:=r;
new(r);
r^.info:=x; r^.urm:=a[y]; a[y]:=r;
end;
for i:=1 to n do d[i]:=0;
p:=1; u:=1;
c[1]:=1; d[1]:=1;
while p<=u do begin
r:=a[c[p]];
while r<>nil do begin
if d[R^.info]=0 then begin
inc(u);
c[u]:=r^.info;
d[r^.info]:=d[c[p]]+1;
if d[r^.info]>m then begin
nod:=r^.info;
m:=d[r^.info];
end;
end;
r:=r^.urm;
end;
inc(p);
end;
for i:=1 to n do d[i]:=0;
p:=1; u:=1;
c[1]:=nod; d[nod]:=1; m:=0;
while p<=u do begin
r:=a[c[p]];
while r<>nil do begin
if d[R^.info]=0 then begin
inc(u);
c[u]:=r^.info;
d[r^.info]:=d[c[p]]+1;
if d[r^.info]>m then m:=d[r^.info];
end;
r:=r^.urm;
end;
inc(p);
end;
write(m);
close(output);
end.