Pagini recente » Cod sursa (job #3038812) | Cod sursa (job #908406) | Cod sursa (job #619715) | Cod sursa (job #1148920) | Cod sursa (job #1481160)
#include <bits/stdc++.h>
using namespace std;
vector <int> h[100001];
int n, d[100001], viz[100001];
void Citire()
{
int x, y, i;
ifstream fin("darb.in");
fin >> n;
for (i = 1; i < n; ++i)
{
fin >> x >> y;
h[x].push_back(y);
h[y].push_back(x);
}
fin.close();
}
int BFS(int k)
{
queue<int> q;
int i, j;
d[k] = 1;
viz[k] = 1;
q.push(k);
while (!q.empty())
{
k = q.front();
q.pop();
for (j = 0; j < h[k].size(); j++)
{
i = h[k][j];
if (!viz[i])
{
viz[i] = 1;
d[i] = d[k] + 1;
q.push(i);
}
}
}
j = 1;
for (i = 2; i <= n; ++i)
if (d[i] > d[j]) j = i;
return j;
}
void Afisare()
{
int i, j;
i = BFS(1);
for (j = 1; j <= n; j++)
{viz[j] = 0;d[j] = 0;}
j = BFS(i);
ofstream fout("darb.out");
fout << d[j] << "\n";
fout.close();
}
int main()
{
Citire();
Afisare();
return 0;
}