Cod sursa(job #1149507)

Utilizator buzu.tudor67Tudor Buzu buzu.tudor67 Data 21 martie 2014 22:38:18
Problema Diametrul unui arbore Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.88 kb
#include<fstream>
#include<vector>
#define maxn 100005
using namespace std;
ifstream fi("darb.in");
ofstream fo("darb.out");

vector <int> a[maxn];
int i,n,x,y,viz[maxn];
int ultim_nod,ultim;

void dfs(int nod,int k){
     int i,lung=a[nod].size();
     
     viz[nod]=1; 
     if(k>ultim){
                 ultim=k;
                 ultim_nod=nod;
                }
     
     for(i=0;i<lung;i++)
       if(!viz[a[nod][i]]) dfs(a[nod][i],k+1);
}

int main(){
    fi>>n; 
    for(i=1;i<=n;i++) viz[i]=0;
    for(i=1;i<n;i++){
                     fi>>x>>y;
                     a[x].push_back(y);
                     a[y].push_back(x);
                    }
                    
    ultim_nod=1; ultim=1; 
    dfs(1,1);
    
    for(i=1;i<=n;i++) viz[i]=0;
    dfs(ultim_nod,1);
    
    fo<<ultim;
    
    fi.close();
    fo.close();
    return 0;
}