Pagini recente » Cod sursa (job #2132400) | Cod sursa (job #1977332) | Cod sursa (job #1982226)
#include <bits/stdc++.h>
#define nmax 100001
using namespace std;
ifstream fin("darb.in");
ofstream fout("darb.out");
int d[nmax],n;
vector<int>a[nmax];
queue<int>q;
bitset<nmax>viz;
void Citire()
{
int i,x,y;
fin>>n;
for(i=1;i<n;i++)
{
fin>>x>>y;
a[x].push_back(y);
a[y].push_back(x);
}
}
void BFS(int varf)
{
int i,x;
q.push(varf);
d[varf]=1;
viz[varf]=1;
while(!q.empty())
{
x=q.front();
q.pop();
for(i=0;i<a[x].size();i++)
if(!viz[a[x][i]])
{
d[a[x][i]]=d[x]+1;
viz[a[x][i]]=1;
q.push(a[x][i]);
}
}
}
int main()
{
int maxim,poz;
Citire();
BFS(1);
maxim=LONG_MIN;
for(int i=1;i<=n;i++)
if(maxim<d[i])
{
maxim=d[i];
poz=i;
}
for(int i=1;i<=n;i++)
d[i]=0;
viz.reset();
BFS(poz);
maxim=LONG_MIN;
for(int i=1;i<=n;i++)
maxim=max(maxim,d[i]);
fout<<maxim<<" ";
fin.close();
fout.close();
return 0;
}