Cod sursa(job #1145790)

Utilizator SilverGSilver Gains SilverG Data 18 martie 2014 13:55:06
Problema Diametrul unui arbore Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
/*
    Keep It Simple!
*/

#include<stdio.h>
#include<list>
#include<string.h>

#define MaxN 100001

using namespace std;

int N,maxv;
int viz[MaxN];
list<int> G[MaxN];

void DFS(int node,int TT)
{
	viz[node] = 1+viz[TT];
	if(viz[node] > viz[maxv])
	 maxv = node;
	for(list<int>::iterator it = G[node].begin(); it!=G[node].end(); it++)
		if(!viz[*it])
			DFS(*it,node);
}

int main()
{
	freopen("darb.in","r",stdin);
	freopen("darb.out","w",stdout);

	int x,y;

	scanf("%d",&N);
	for(int i=1;i<N;i++)
	{
		scanf("%d%d",&x,&y);
		G[x].push_back(y);
		G[y].push_back(x);
	}

	DFS(1,0);
	memset(viz,0,sizeof(viz));
	int aux = maxv;
	maxv = 0;
	DFS(aux,0);
	printf("%d",maxv);

}