Pagini recente » Cod sursa (job #3285612) | Cod sursa (job #1405729) | Cod sursa (job #858184) | Cod sursa (job #699764) | Cod sursa (job #2337155)
#include <bits/stdc++.h>
using namespace std;
ifstream in("darb.in");
ofstream out("darb.out");
const int nx = 100001;
bitset < nx > viz;
int dist[nx];
vector < int > v[nx];
int mx = 0, nod, rad;
int n,m,i,j;
queue < int > q;
void bfs (int start)
{
memset(dist,0,sizeof(dist));
dist[start]=1;
q.push(start);
while(!q.empty())
{
int x = q.front();
q.pop();
for(vector < int > :: iterator it = v[x].begin(); it!=v[x].end(); it++)
if(dist[*it]==0)
{
dist[*it]=dist[x]+1;
q.push(*it);
}
}
}
int main()
{
in>>n;
for(int t = 1; t<n; t++)
{
in>>i>>j;
v[i].push_back(j);
v[j].push_back(i);
}
bfs(1);
for(int i=1; i<=n; i++)
if(dist[i]>mx)
{
mx = dist[i];
nod = i;
}
bfs(nod);
mx = 0;
for(int i=1; i<=n; i++)
if(dist[i]>mx)
mx = dist[i];
out<<mx;
return 0;
}