Pagini recente » Cod sursa (job #435715) | Cod sursa (job #2890376) | Cod sursa (job #1609007) | Cod sursa (job #1666202) | Cod sursa (job #2569742)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#include <queue>
#include <cstring>
using namespace std;
ifstream fin("darb.in");
ofstream fout("darb.out");
const int DIM = 100005;
int n,x,y,Dist[DIM],Max,Root;
vector <int> G[DIM];
void Read()
{
fin>>n;
for(int i=1;i<n;i++)
{
fin>>x>>y;
G[x].push_back(y);
G[y].push_back(x);
}
}
queue <int> Q;
void BFS(int start)
{
Q.push(start);
Dist[start]=1;
while(!Q.empty())
{
int nod=Q.front();
if(Dist[nod]>Max)
{
Max=Dist[nod];
Root=nod;
}
vector <int> ::iterator it;
for(it=G[nod].begin();it!=G[nod].end();it++)
{
if(!Dist[*it])
{
Dist[*it]=Dist[nod]+1;
Q.push(*it);
}
}
Q.pop();
}
}
int main()
{
Read();
BFS(1);
memset(Dist,0,sizeof(Dist));
BFS(Root);
fout<<Max<<'\n';
}