Pagini recente » Cod sursa (job #96691) | Cod sursa (job #1662446) | Runda 3 preONI 2007 | Monitorul de evaluare | Cod sursa (job #1108575)
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
#include <cstring>
#define maxn 100010
using namespace std;
ifstream in("darb.in");
ofstream out("darb.out");
int n;
vector <int> Graf[maxn];
queue <int> Q;
int last,ct[maxn],diam;
bool viz[maxn];
void BFS(int nod)
{
memset(viz,0,sizeof(viz));
vector <int> :: iterator it;
Q.push(nod);
viz[nod]=1;
ct[nod]=1;
while(!Q.empty())
{
int now=Q.front();
Q.pop();
for(it=Graf[now].begin();it!=Graf[now].end();it++)
if(!viz[*it])
{
viz[*it]=1;
ct[*it]=ct[now]+1;
Q.push(*it);
diam=ct[*it];
last=*it;
}
}
}
int main()
{
in>>n;
int x,y;
int m=n-1;
while(m--)
{
in>>x>>y;
Graf[x].push_back(y);
Graf[y].push_back(x);
}
BFS(1);
BFS(last);
out<<diam;
return 0;
}