Pagini recente » Cod sursa (job #2513008) | Cod sursa (job #2659345) | Cod sursa (job #2589052) | Cod sursa (job #2514700) | Cod sursa (job #1795313)
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
#include <iterator>
#define Nmax 100010
using namespace std;
ifstream f("darb.in");
ofstream g("darb.out");
vector <int> adj[Nmax];
int visited[Nmax],contor[Nmax],diam,last,n;
queue <int> q;
void bfs(int x)
{
int v,next;
q.push(x);
while(!q.empty())
{
v=q.front();
q.pop();
for(vector<int>::iterator it=adj[v].begin();it!=adj[v].end();it++ )
{
next=*it;
if(!visited[next])
{
visited[next]=1;
contor[next]=contor[v]+1;
last=next;
diam=contor[next];
q.push(next);
}
}
}
}
int main()
{
f>>n;
int x,y;
for(int i=0;i<n;i++)
{
f >> x >> y;
adj[x].push_back(y);
adj[y].push_back(x);
}
bfs(1);
for(int i=1;i<=n;i++)
{
contor[i]=1;
visited[i]=0;
}
bfs(last);
g << diam << "\n";
return 0;
}