Pagini recente » Cod sursa (job #3290537) | Cod sursa (job #1027033) | Cod sursa (job #2456345) | Cod sursa (job #2248884) | Cod sursa (job #2204284)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream f("darb.in");
ofstream g("darb.out");
const int NMAX = 100001;
int N, ult, dist[NMAX], coada[NMAX];
bool viz[NMAX];
vector<int> lista[NMAX];
int BFS(int x)
{
int st = 0, dr = 1;
viz[x] = true;
coada[++st] = x;
while(st <= dr)
{
int crt = coada[st++];
for(auto &it : lista[crt])
if(viz[it] == false)
{
coada[++dr] = it;
dist[it] = dist[crt] + 1;
viz[it] = true;
}
}
return coada[dr];
}
int main()
{
int x, y;
f >> N;
for(int i = 1; i < N; i++)
{
f >> x >> y;
lista[x].push_back(y);
lista[y].push_back(x);
}
ult = BFS(1);
for(int i = 1; i <= N; i++)
viz[i] = false, dist[i] = 1;
g << dist[BFS(ult)];
return 0;
}