Cod sursa(job #1965248)

Utilizator GabiTulbaGabi Tulba-Lecu GabiTulba Data 14 aprilie 2017 01:53:01
Problema Diametrul unui arbore Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <cstring>
#include <cstdio>
#include <vector>
#include <queue>
#include <algorithm>
#include <cmath>

using namespace std;

const int MaxN=1e5+5;
FILE *IN,*OUT;

int N,D[MaxN],Max=0,maxpos,X,Y;
vector<int> Graph[MaxN];
void DFS(int node,int depth)
{
	D[node]=depth;
	if(depth>Max)
		Max=depth,maxpos=node;
	for(int i=0;i<Graph[node].size();i++)
		if(D[Graph[node][i]]==0)
			DFS(Graph[node][i],depth+1);
}
int main()
{
	IN=fopen("darb.in","r");
	OUT=fopen("darb.out","w");

	fscanf(IN,"%d",&N);

	for(int i=1;i<N;i++)
	{
		fscanf(IN,"%d%d",&X,&Y);
		Graph[X].push_back(Y);
		Graph[Y].push_back(X);
	}
	DFS(1,1);
	memset(D,0,sizeof D);
	Max=0;
	DFS(maxpos,1);
	fprintf(OUT,"%d\n",Max);
	return 0;
}