Cod sursa(job #2195659)

Utilizator richard26Francu Richard richard26 Data 16 aprilie 2018 22:34:39
Problema Diametrul unui arbore Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
#include <iostream>

#include<fstream>
using namespace std ;
ifstream f("darb.in") ;
ofstream g("darb.out") ;
int a[10001][10001],n,v[100001],niv[100001] ;
int dfs(int nod,int nr)
{
    int i ;
    v[nod]=1 ;
    if(nr==n) return nod ;
      else  for(i=1;i<=n;i++) if(a[i][nod]==1&&v[i]==0) dfs(i,nr+1) ;
}
int dfs1(int nod)
{
    int i ;
    v[nod]=1 ;
    for(i=1;i<=n;i++) if(v[i]==0&&a[nod][i]==1) {niv[i]=niv[nod]+1 ;
                                                 dfs1(i) ;}
}
int main()
{ int x,y,i ;
  f>>n ;
  for(i=1;i<=n-1;i++){f>>x>>y ;
                    a[x][y]=1 ;
                    a[y][x]=1 ;
                    }
 x=dfs(1,1) ;
 for(i=1;i<=n;i++) v[i]=0 ;
 niv[x]=1 ;
 dfs1(x) ;
 int maxi=0 ;
 for(i=1;i<=n;i++) if(niv[i]>maxi) maxi=niv[i] ;
 g<<maxi ;



}