Pagini recente » Cod sursa (job #1006777) | Cod sursa (job #1438477) | Cod sursa (job #873100) | Cod sursa (job #2967241) | Cod sursa (job #2145343)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("darb.in");
ofstream g("darb.out");
struct muchii{
int info;
muchii *urm;
};
muchii *v[100001];
int n,m,h[100001],max1=-99999999;
void add(int x,int y)
{
muchii *k=new muchii;
k->info=x;
k->urm=v[y];
v[y]=k;
}
void citire()
{
int x,y;
f>>n;
for(int i=1;i<=n-1;i++)
{
f>>x>>y;
add(x,y);
add(y,x);
}
}
/*void afisare()
{
for(int i=1;i<=n;i++)
{
g<<i<<": ";
muchii *k=v[i];
while(k!=NULL)
{
g<<k->info<<" ";
k=k->urm;
}
g<<'\n';
}
}*/
void prepare(bool viz[])
{
for(int i=1;i<=n;i++)
viz[i]=0;
}
void BF(int na)
{
int c[100001];
int in,sf;
bool viz[100001];
prepare(viz);
in=sf=1;
c[in]=na;
h[c[in]]=1;
viz[c[in]]=1;
while(in<=sf)
{
muchii *k=v[c[in]];
while(k!=NULL)
{
if(!viz[k->info])
{
sf++;
c[sf]=k->info;
viz[k->info]=1;
h[c[sf]]=h[c[in]]+1;
}
k=k->urm;
}
in++;
}
}
void afis()
{
for(int i=1;i<=n;i++)
g<<h[i]<<" ";
g<<'\n';
}
void actualizare()
{
for(int i=1;i<=n;i++)
if(h[i]>max1)
max1=h[i];
}
int main()
{
citire();
for(int i=1;i<=n;i++)
{
BF(i);
actualizare();
//afis();
}
g<<max1;
//afisare();
return 0;
}