Pagini recente » Cod sursa (job #30277) | Cod sursa (job #1836057) | Cod sursa (job #468846) | Cod sursa (job #1583256) | Cod sursa (job #1320397)
#include<fstream>
#include<vector>
using namespace std;
ifstream f("darb.in");
ofstream g("darb.out");
vector <int> l[100001];
int n,v[100001],i,j,c[100001],nod1,nod2;
void read(int nod)
{
int i=0;
i=nod;
f>>n;
int xul=0;
int yul=0;
for(i=1;i<=n-1;i++)
{
f>>xul>>yul;
l[xul].push_back(yul);
l[yul].push_back(xul);
}
}
void bfs(int nod,int &nod1)
{
v[nod]=1;
c[1]=nod;
int st,dr;
st=1;dr=1;
while(st<=dr)
{
int k=c[st];
for(int i=0;i<l[k].size();i++)
if(v[l[k][i]]==0)
{
dr++;
c[dr]=l[k][i];
v[l[k][i]]=v[k]+1;
}
st++;
}
nod1=c[dr];
}
int main()
{
read(1);
bfs(1,nod1);
for(i=1;i<=n;i++)
v[i]=0;
bfs(nod1,nod2);
g<<v[nod2];
return 0;
}