Cod sursa(job #1096031)

Utilizator roots4Irimia Alexandru Gabriel roots4 Data 1 februarie 2014 14:18:02
Problema Diametrul unui arbore Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include<fstream>
#include<vector>
#include<string>

using namespace std;

#define max_n 100010

ifstream f("darb.in");
ofstream g("darb.out");

int n , a , b , niv_max , nod_max;
int Fr[max_n];

vector<int> L[max_n];

void read(){
	
	f>>n;
	
	for( int i = 1 ; i < n ; i++ ){
		f>>a>>b;
		L[a].push_back(b);
		L[b].push_back(a);
	}
	
}

void dfs( int nod , int niv ){
	
	if( niv > niv_max ){
		nod_max = nod;
		niv_max = niv;
	}
	
	Fr[nod] = 1;
	
	for( unsigned int i = 0 ; i < L[nod].size() ; i++ )
		if( Fr[L[nod][i]] == 0 )
			dfs( L[nod][i] , niv + 1 );
	
}

int main(){
	
	read();
	
	dfs( rand() % n + 1 , 1);
	
	memset( Fr , 0 , sizeof(Fr) );
	
	dfs( nod_max , 1 );
	
	g<<niv_max<<"\n";
	
	return 0;
}