Pagini recente » Cod sursa (job #1581642) | Cod sursa (job #2137957) | Cod sursa (job #2392374) | Cod sursa (job #666535) | Cod sursa (job #1838429)
#include <bits/stdc++.h>
using namespace std;
vector <int> graf[100001];
queue <pair<int, int>> solve;
bitset <100001> verif;
bitset <100001> verif1;
int main()
{
ifstream fin ("darb.in");
ofstream fout ("darb.out");
int n, nod, diametru;
fin >> n;
for (int i = 1; i<n; ++i)
{
int x, y;
fin >> x >> y;
graf[x].push_back(y);
graf[y].push_back(x);
}
solve.push(make_pair(1, 1));
verif[1] = 1;
while (solve.empty() == 0)
{
nod = solve.front().first;
diametru = solve.front().second;
solve.pop();
for (auto x:graf[nod])
{
if (verif[x] == 0)
{
verif[x] = 1;
solve.push(make_pair(x, diametru+1));
}
}
}
solve.push(make_pair(nod, 1));
verif1[nod] = 1;
while (solve.empty() == 0)
{
nod = solve.front().first;
diametru = solve.front().second;
solve.pop();
for (auto x:graf[nod])
{
if (verif1[x] == 0)
{
verif1[x] = 1;
solve.push(make_pair(x, diametru+1));
}
}
}
fout << diametru;
return 0;
}