Cod sursa(job #1128071)

Utilizator DaniEsDani Stetcu DaniEs Data 27 februarie 2014 15:12:37
Problema Diametrul unui arbore Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <fstream>
#include <vector>
#include <cstring>
#define NMax 100005
using namespace std;
ifstream fin("darb.in");
ofstream fout("darb.out");
int n, start, sol;
vector <int> G[NMax];
bool use[NMax];
void Read()
{
	fin>>n;
	for(int i=1,x,y;i<n;i++)
	{
		fin>>x>>y;
		G[x].push_back(y);
		G[y].push_back(x);
	}
}

void DFS(int nod, int level)
{
	use[nod]=1;
	if(level>sol)
	{
		start=nod;
		sol=level;
	}
	for(unsigned int i=0; i<G[nod].size(); i++)
		if(!use[G[nod][i]])
			DFS(G[nod][i], level+1);
}

int main()
{
	Read();
	DFS(1, 1);
	memset(use, 0, sizeof use);
	DFS(start, 1);
	fout<<sol;
	return 0;
}