Cod sursa(job #1102855)

Utilizator stefanzzzStefan Popa stefanzzz Data 9 februarie 2014 14:50:28
Problema Diametrul unui arbore Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <fstream>
#include <vector>
#define MAXN 100005
using namespace std;
ifstream f("darb.in");
ofstream g("darb.out");

int n,a,b,x,lvl[MAXN],tata[MAXN],mx,nod;
vector<int> G[MAXN];

void DFS(int p);

int main()
{
    int i;
    f>>n;
    for(i=1;i<n;i++){
        f>>a>>b;
        G[a].push_back(b);
        G[b].push_back(a);}
    mx=0;
    DFS(1);
    lvl[nod]=tata[nod]=mx=0;
    DFS(nod);
    g<<mx+1<<'\n';
    f.close();
    g.close();
    return 0;
}

void DFS(int p){
    int i;
    if(lvl[p]>mx){
        mx=lvl[p];
        nod=p;}
    for(i=0;i<G[p].size();i++){
        x=G[p][i];
        if(tata[p]==x)
            continue;
        tata[x]=p;
        lvl[x]=lvl[p]+1;
        DFS(x);}}