Cod sursa(job #1094330)

Utilizator Impaler_009Mihai Nitu Impaler_009 Data 29 ianuarie 2014 11:37:35
Problema Diametrul unui arbore Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <fstream>
#include <vector>

using namespace std;

ifstream fin("darb.in");
ofstream fout("darb.out");

vector<int> T[100001];
int n,maxd,a,b,d[100001];

void DFS (int x, int father)
{
    d[x] = d[father] + 1;

    if (d[x] > d[maxd])
        maxd = x;

    for (int i=0; i<T[x].size(); ++i)
    {
        if (T[x][i] == father)
            continue;
        DFS (T[x][i],x);
    }
}

int main()
{
    fin>>n;

    for (int i=1; i<n; ++i)
    {
        fin>>a>>b;

        T[a].push_back (b);
        T[b].push_back (a);
    }

    maxd = 0;
    DFS (1,0);

    d[maxd] = 0;
    DFS (maxd,0);

    fout<<d[maxd];
}