Pagini recente » Cod sursa (job #530851) | Cod sursa (job #438880) | Cod sursa (job #2709845) | Cod sursa (job #1514064) | Cod sursa (job #1610096)
#include<fstream>
using namespace std;
struct nod
{
int vecin;
nod *leg;
};
int coada[100009],n,viz[100009],frunza,pr,ul;
nod *lv[100009],*p;
ifstream fin("darb.in");
ofstream fout("darb.out");
void bfs(int vfstart)
{
int i,x,y;
for(i=1;i<=n;i++)
{
viz[i]=1;
}
coada[1]=vfstart;
pr=1;ul=1;
viz[vfstart]=0;
while(pr<=ul)
{
x=coada[pr];
for(p=lv[x];p!=0;p=p->leg)
{
y=p->vecin;
if(viz[y]==1)
{
viz[y]=1+viz[x];
ul++;
coada[ul]=y;
}
}
pr++;
}
}
int main()
{
int i,x,y;
fin>>n;
for(i=1;i<=n-1;i++)
{
fin>>x>>y;
p=new nod;
p->vecin=y;
p->leg=lv[x];
lv[x]=p;
p=new nod;
p->vecin=x;
p->leg=lv[y];
lv[y]=p;
}
bfs(1);
frunza=coada[ul];
bfs(frunza);
fout<<viz[coada[ul]]+1;
fin.close();
fout.close();
return 0;
}