Pagini recente » Cod sursa (job #42321) | Cod sursa (job #1225159) | Cod sursa (job #2888437) | Cod sursa (job #470354) | Cod sursa (job #2120407)
#include <cstdio>
#include <vector>
#include <queue>
using namespace std;
const int Nmax = 100010;
vector <int> graf[Nmax];
queue<int> coada;
int viz[Nmax],contor[Nmax],elfinal,n;
void bfs(int start)
{
int nod;
coada.push(start);
viz[start]= 1;
contor[start] = 1;
while(!coada.empty())
{
nod = coada.front();
coada.pop();
for(vector <int> :: iterator it = graf[nod].begin() ; it!= graf[nod].end() ; it++)
{
if(viz[*it] == 0)
{
viz[*it] = 1;
coada.push(*it);
contor[*it] = contor[nod] + 1;
elfinal= *it;
}
}
}
}
void reset()
{
for(int i = 0 ; i < n ; i++)
viz[i] = 0;
}
void read()
{
freopen("darb.in","r",stdin);
freopen("darb.out","w",stdout);
scanf("%d",&n);
int x,y;
for(int i = 0 ; i < n-1; i ++)
{
scanf("%d %d",&x,&y);
graf[x].push_back(y);
graf[y].push_back(x);
}
}
int main()
{
read();
bfs(1);
reset();
bfs(elfinal);
printf("%d",contor[elfinal]);
return 0;
}