Cod sursa(job #1107910)

Utilizator dspMihaiDespotovici Mihai dspMihai Data 14 februarie 2014 21:09:14
Problema Diametrul unui arbore Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
vector <int> leg[100001];
int viz[100001];
int i,j,n,a,b,lm1,lm2,last;
void dfs (int crt, int lg)
{
	if (lg>lm1) 
	{
		lm1=lg; 
		last=crt;
	}
	int i,k=leg[crt].size();
	for (i=0; i<k; i++)
		if (!viz[leg[crt][i]])
		{			
		viz[leg[crt][i]]=1;
		dfs(leg[crt][i], lg+1);
		}
}


int main () {
	FILE *f, *g;

	
	f=fopen("darb.in", "r");
		fscanf(f, "%d", &n);
	for (i=1; i<=n; i++)
	{
		fscanf(f, "%d %d", &a,&b);
		leg[a].push_back(b);
		leg[b].push_back(a);
	}
	fclose(f); 
	
	viz[1]=1;
	dfs(1,1);
	for (i=1; i<=n; i++) viz[i]=0;
	dfs(last,1);
	
	g=fopen("darb.out", "w");
	fprintf(g, "%d", lm1);
	fclose(g);
	return 0;
}