Cod sursa(job #1182431)

Utilizator TimeAttackTimer Roby TimeAttack Data 6 mai 2014 13:26:15
Problema Diametrul unui arbore Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.91 kb
/*
    Keep It Simple!
*/

#include<fstream>
#include<vector>
#include<string.h>

#define MaxN 100005

using namespace std;

int dist[MaxN],maxv,maxp,N;
vector<int> G[MaxN];


void DFS(int node)
{
    for(size_t i=0;i<G[node].size();i++)
    {
        int vecin = G[node][i];
        if(!dist[vecin])
        {
            dist[vecin] = dist[node]+1;
            if(dist[vecin]>maxv)
            {
                maxv = dist[vecin];
                maxp = vecin;
            }
            DFS(vecin);
        }
    }
}

int main()
{
    ifstream f("heap.in");
    ofstream g("heap.out");

    f >> N;
    int x,y;
    for(int i=1;i<N;i++)
    {
        f >> x >> y;
        G[x].push_back(y);
        G[y].push_back(x);
    }
    dist[1] = 1;
    DFS(1);
    memset(dist,0,sizeof(dist));
    int aux = maxp;
    maxv = maxp = 0;
    dist[aux] = 1;
    DFS(aux);
    g << maxv;
}