Pagini recente » Cod sursa (job #1480277) | Cod sursa (job #1579102) | Cod sursa (job #600226) | Cod sursa (job #3292861) | Cod sursa (job #1977357)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("darb.in");
ofstream fout("darb.out");
int N, nod1, m1 = -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;
nod1 = i;
G[i].push_back(j);
G[j].push_back(i);
}
BFS(nod1);
discovered.reset();
BFS(nod1);
m1 = -INT_MAX;
fout << dim[nod1];
return 0;
}