Pagini recente » Cod sursa (job #929454) | Cod sursa (job #2264409) | Cod sursa (job #2222100) | Cod sursa (job #3126867) | Cod sursa (job #2116245)
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream in("darb.in");
ofstream out("darb.out");
const int Nmax = 100005;
vector<int> A[Nmax];
void BFS (int S, int&x, 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++)
{
int w = A[x][i];
if (!viz[w])
{
Q.push(w);
viz[w] = viz[x] + 1;
}
}
}
}
int main()
{
int n, x;
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, x, viz, Q);
for (int i = 1; i <= n; i++)
viz[i] = 0;
BFS(x, x, viz, Q);
out << viz[x];
}