Cod sursa(job #1389577)

Utilizator tdr_drtTdr Drt tdr_drt Data 16 martie 2015 13:48:51
Problema Diametrul unui arbore Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include<fstream>
#include<vector>
using namespace std;
ifstream f("darb.in");
ofstream g("darb.out");
int n,viz[100001],max1,aux,x,y;
vector<int>a[100001];

void dfs(int nod,int nivel,int &max1,int &aux){
  if(max1<nivel) {max1=nivel,aux=nod;}
  for(int i=0;i<a[nod].size();i++)
    if(viz[a[nod][i]]==viz[0]) viz[a[nod][i]]=!viz[0],dfs(a[nod][i],nivel+1,max1,aux);
}

int main(){

  f>>n;
  for(int i=1;i<=n-1;i++){
      f>>x>>y;
      a[x].push_back(y);
      a[y].push_back(x);
 }
   viz[0]=0;
   viz[1]=1;
   dfs(1,0,max1,aux);
   viz[0]=1;
   dfs(aux,1,max1,n);
   g<<max1;

 return 0;
}