Pagini recente » Cod sursa (job #297698) | Cod sursa (job #2928006) | Cod sursa (job #215477) | Cod sursa (job #2953373) | Cod sursa (job #1977353)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("darb.in");
ofstream fout("darb.out");
int N, nod1, nod2, m1 = -INT_MAX, m2 = -INT_MAX;
vector<vector<int>>G;
vector<int>dim;
bitset<100005>discovered;
void BFS(int nod)
{
queue<int>Q;
Q.push(nod);
dim[nod] = 1;
discovered[nod] = true;
while(!Q.empty())
{
int k = Q.front(); Q.pop();
for (auto v:G[k])
if (!discovered[v])
{
discovered[v] = true;
dim[v] = dim[k] + 1;
if (dim[v] > m1)
m1 = dim[v], nod1 = v;
Q.push(v);
}
}
}
int main()
{
fin >> N;
G.resize(N + 1);
dim.resize(N + 1);
int k = 1;
for(int i ,j; k < N; ++k)
{
fin >> i >> j;
G[i].push_back(j);
G[j].push_back(i);
}
BFS(1);
discovered.reset();
BFS(nod1);
m1 = -INT_MAX;
fout << dim[nod1];
return 0;
}