Pagini recente » Cod sursa (job #1362684) | Cod sursa (job #477846) | Cod sursa (job #1277005) | Statistici Brozba Robert (you1996) | Cod sursa (job #1542687)
#include <vector>
#include <cstdio>
#include <queue>
#include <cstring>
using namespace std;
const int maxn=100005;
vector <int > g[maxn];
queue < pair < int ,int > > q;
int last,n,viz[maxn],drum=1;
void citire ()
{
scanf("%d",&n);
int x,y;
for (int i=1;i<n;++i)
{
scanf("%d%d",&x,&y);
g[x].push_back(y);
g[y].push_back(x);
}
}
void bfs(int incep)
{
q.push(make_pair(incep,1));
viz[incep]=1;
memset(viz,0,maxn);
while (!q.empty())
{
int nod=q.front().first;
int d=q.front().second;
q.pop();
for (vector < int > ::iterator it=g[nod].begin();it!=g[nod].end();++it)
if (!viz[*it])
{
viz[*it]=1;
q.push(make_pair(*it,d+1));
last=*it;
drum=d+1;
}
}
}
int main()
{
freopen("darb.in","r",stdin);
freopen("darb.out","w",stdout);
citire();
bfs(1);
bfs(last);
printf("%d",drum);
return 0;
}