Pagini recente » Cod sursa (job #3208026) | Cod sursa (job #404759) | Cod sursa (job #2809829) | Cod sursa (job #2049209) | Cod sursa (job #2116241)
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream in("darb.in");
ofstream out("darb.out");
const int Nmax = 100005;
int x;
vector<int> A[Nmax];
void BFS (int S, vector<int>&viz, queue<int>&Q)
{
viz[S] = 1;
Q.push(S);
while (!Q.empty())
{
x = Q.front();
Q.pop();
for (int i = 0; i < A[x].size(); i++)
{
if (!viz[A[x][i]])
{
Q.push(A[x][i]);
viz[A[x][i]] = viz[x] + 1;
}
}
}
}
int main()
{
int n;
queue<int> Q;
vector<int> viz(Nmax);
in >> n;
for (int i = 1; i < n; i++)
{
int x, y;
in >> x >> y;
A[x].push_back(y);
A[y].push_back(x);
}
BFS(1, viz, Q);
for (int i = 1; i <= n; i++)
viz[i] = 0;
BFS(x, viz, Q);
out << viz[x];
}