Pagini recente » Cod sursa (job #2073311) | Cod sursa (job #2720190) | Cod sursa (job #638715) | Cod sursa (job #2927508) | Cod sursa (job #1220392)
#include <cstdio>
#include <cstring>
#include <vector>
#include <queue>
using namespace std;
const int MAXN = 100005;
int N, last, Count[MAXN], ans;
vector <int> G[MAXN];
queue <int> Q;
bool Used[MAXN];
void BFS(int v)
{
Q.push(v);
Used[v] = 1;
Count[v] = 1;
while (!Q.empty())
{
int node = Q.front(); Q.pop();
for (vector <int> :: iterator it = G[node].begin(); it != G[node].end(); ++it)
{
if (!Used[*it])
{
Used[*it] = 1;
Q.push(*it);
Count[*it] = Count[node] + 1;
ans = Count[*it];
last = *it;
}
}
}
}
int main()
{
freopen("darb.in", "r", stdin);
freopen("darb.out", "w", stdout);
scanf("%d\n", &N);
for (int i = 1; i < N; ++i)
{
int a, b;
scanf("%d %d\n", &a, &b);
G[a].push_back(b);
G[b].push_back(a);
}
BFS(1);
memset(Used, 0, sizeof(Used));
memset(Count, 0, sizeof(Count));
BFS(last);
printf("%d\n", ans);
return 0;
}