Pagini recente » Cod sursa (job #909467) | Cod sursa (job #2656459) | Cod sursa (job #523193) | Cod sursa (job #2577750) | Cod sursa (job #1975293)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("darb.in");
ofstream fout ("darb.out");
int A[101][101], N;
void citire()
{
fin>>N;
int a,b;
for( int i=1;i<=N-1;i++)
{
fin>>a>>b;
A[a][b]=1;
A[b][a]=1;
}
}
void bf (int x, int viz[])
{
int p,u, c[101];
p=u=1;
for( int i=1;i<=N;i++)
viz[i]=-1;
viz[x]=0;
c[1]=x;
while(p<=u)
{
x=c[p++];
for( int i=1;i<=N;i++)
if(viz[i]==-1&&A[x][i]==1)
{
viz[i]=viz[x]+1;
c[++u]=i;
}
}
}
int maxi (int viz[])
{ int M=1;
for( int i=1;i<=N;i++)
if(viz[i]>viz[M])
M=i;
return M;
}
int main()
{
int viz[101];
citire();
bf(1,viz);
int vf=maxi(viz);
bf(vf,viz);
int n=maxi(viz);
fout<<viz[n]+1;
return 0;
}