Cod sursa(job #2204196)

Utilizator shantih1Alex S Hill shantih1 Data 14 mai 2018 22:48:04
Problema Diametrul unui arbore Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <deque>
using namespace std;
ifstream fin("darb.in");
ofstream fout("darb.out");

int n,i,j,nr,a,b,cp1,d[100005],rez;
bool viz[100005];
vector<int> vec[100005];
deque<int> q;

int main() {
	
	fin>>n;
	for(i=1;i<n;i++)
	{
		fin>>a>>b;
		vec[a].push_back(b);
		vec[b].push_back(a);
	}
	
	q.push_back(1);
	viz[1]=1;
	while(!q.empty())
	{
		cp1=q.front();
		q.pop_front();
		for(i=0;i<vec[cp1].size();i++)
			if(viz[vec[cp1][i]]==0)
			{
				viz[vec[cp1][i]]=1;
				q.push_back(vec[cp1][i]);
			}
	}
	
	d[cp1]=1;
	q.push_back(cp1);
	while(!q.empty())
	{
		a=q.front();
		q.pop_front();
		for(i=0;i<vec[a].size();i++)
			if(d[vec[a][i]]==0)
			{
				d[vec[a][i]]=d[a]+1;
				if(d[a]+1>rez)	rez=d[a]+1;
				q.push_back(vec[a][i]);
			}
	}
	fout<<rez<<"\n";
	return 0;
}