Pagini recente » Cod sursa (job #2282112) | Cod sursa (job #21857) | Cod sursa (job #1387774) | Cod sursa (job #2911208) | Cod sursa (job #1140160)
/*
Keep It Simple!
*/
#ifdef _MSC_VER
#define _CRT_SECURE_NO_WARNINGS
#endif
#include<stdio.h>
#include<list>
#include<string.h>
#define MaxN 100005
#define MaxV(a,b) ((a)>(b)?(a):(b))
using namespace std;
int N, x, y, Level[MaxN],VMax,PMax;
list<int> G[MaxN];
bool viz[MaxN];
void DFS(int node)
{
viz[node] = 1;
for (list<int>::iterator it = G[node].begin(); it != G[node].end(); it++)
{
if (viz[*it]) continue;
Level[*it] = Level[node] + 1;
if (Level[*it] > VMax) {
VMax = Level[*it]; PMax = *it;
}
DFS(*it);
}
}
int main()
{
freopen("darb.in", "r", stdin);
freopen("darb.out", "w", stdout);
scanf("%d", &N);
VMax = 0;
for (int i = 1; i <= N; i++)
{
scanf("%d%d", &x, &y);
G[x].push_back(y);
G[y].push_back(x);
}
DFS(1);
VMax = 0;
Level[PMax] = 0;
memset(viz, 0, sizeof(viz));
DFS(PMax);
printf("%d", VMax+1);
}