Cod sursa(job #1128093)

Utilizator mazaandreiAndrei Mazareanu mazaandrei Data 27 februarie 2014 15:20:18
Problema Diametrul unui arbore Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include<fstream>
#include<vector>
using namespace std;
ifstream in("darb.in"); ofstream out("darb.out");
vector <int> l[100005];
bool viz[100005];
int    d[100005];
int dmax,maxim,x,y,n;
void dfs(int nod){
    viz[nod]=1;
    if(dmax<d[nod]){dmax=d[nod]; maxim=nod;}
    for(vector <int> :: iterator it=l[nod].begin(); it!=l[nod].end(); ++it){
        if(!viz[(*it)]){
            d[(*it)]=d[nod]+1;
            dfs((*it));
        }
    }
}
int main(){
    in>>n;
    for(int i=2;i<=n;++i){
        in>>x>>y;
        l[x].push_back(y);
        l[y].push_back(x);
    }
    d[1]=1;
    dfs(1);
    for(int i=1;i<=n;++i){ viz[i]=0; d[i]=0;}
    d[maxim]=1;
    dfs(maxim);
    out<<maxim<<'\n';
    out.close();
    return 0;
}