Cod sursa(job #2344378)

Utilizator _Victor_Victor Ciobanu _Victor_ Data 15 februarie 2019 01:11:22
Problema Diametrul unui arbore Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.7 kb
#include <bits/stdc++.h>

using namespace std;

vector <int> A[100010];
int m=0,nodm=0;

void dfsM(int parinte,int nod,int val){
	if(m<val){
		nodm=nod;
		m=val;
	}
	for(int i=0;i<A[nod].size();i++) 
		if(A[nod][i]!=parinte)dfsM(nod,A[nod][i],val+1);
}

int dfsL(int parinte, int nod,int val){
	m=max(m,val);
	for(int i=0;i<A[nod].size();i++) 
		if(A[nod][i]!=parinte)dfsM(nod,A[nod][i],val+1);
	return m;
}

int detD(){
	dfsM(0,1,0);
	m=0;
	return dfsL(0,nodm,0)+1;
}

int main(){
	ifstream cin("darb.in");
	ofstream cout("darb.out");
	int n;
	cin>>n;
	for(int i=0;i<n-1;i++){
		int a,b;
		cin>>a>>b;
		A[a].push_back(b);
		A[b].push_back(a);
	}
	cout<<detD();
	return 0;
}