Cod sursa(job #1617399)

Utilizator artasRares Ghioc artas Data 27 februarie 2016 13:21:27
Problema Diametrul unui arbore Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include<fstream>
using namespace std;
ifstream f("darb.in");
ofstream g("darb.out");
int viz[100001], n,j;
struct pizza
{
	int a, b;
}m[100001];
void dfs(int x, int ad)
{
	int i;
	viz[x] = ad;
	for (i = 1; i <= j; i++)
	{
		if (m[i].a == x && !viz[m[i].b])
			dfs(m[i].b, ad + 1);
		else
		{
			if (m[i].b == x && !viz[m[i].a])
				dfs(m[i].a, ad + 1);
		}
	}
}
int main()
{
	int i=0, x, y,mx=0,ind;
	f >> n;
	while (f >> x >> y)
	{
		j++;
		m[j].a = x;
		m[j].b = y;
	}
	dfs(1, 1);
	for (i = 1; i <= n; i++)
		if (viz[i] > mx)
		{
			mx = viz[i];
			ind = i;
		}
	for (i = 1; i <= n; i++)viz[i] = 0;
	dfs(ind, 1);
	for (i = 1; i <= n; i++)
		if (viz[i] > mx)mx = viz[i];
	g << mx;
}