Pagini recente » Istoria paginii runda/emag_2016-incepatori-1/clasament | Cod sursa (job #2313319) | Cod sursa (job #1890434) | Cod sursa (job #1063601) | Cod sursa (job #2404483)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
static ifstream fin("darb.in");
static ofstream fout("darb.out");
static int N;
static int c[100001], viz[100001];
static vector<int> a[100001];
static void citire()
{
fin >> N;
int x, y;
for (int i = 1; i <= N - 1; ++i)
{
fin >> x >> y;
a[x].push_back(y);
a[y].push_back(x);
}
}
static int BFS(int x)
{
for (int i = 0; i <= N; ++i)
viz[i] = -1;
int p, u;
p = u = 1;
c[p] = x;
viz[x] = 0;
while (p <= u)
{
x = c[p++];
for (int i = 0; i < a[x].size(); ++i)
{
if (viz[a[x][i]] == -1)
{
viz[a[x][i]] = viz[x] + 1;
c[++u] = a[x][i];
}
}
}
return c[u];
}
int main()
{
citire();
int last = BFS(1);
int p = BFS(last);
fout << viz[p] + 1;
return 0;
}