Cod sursa(job #2195799)

Utilizator matei.goantaGoanta Matei Cosmin matei.goanta Data 17 aprilie 2018 13:30:18
Problema Diametrul unui arbore Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb
#include <fstream>
#include <vector>
#define NMAX 100005

using namespace std;

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

vector<int> a[NMAX];

int n;
int niv[NMAX], maxim=-1, pmax;
bool viz[NMAX];

void dfs(int x, int dist);

int main()
    {
    fin>>n;

    int x, y, i;

    for (i=1; i<=n-1; i++)
        {
        fin>>x>>y;
        a[x].push_back(y);
        a[y].push_back(x);
        }

    dfs(1, 1);

    for (i=1; i<=n; i++)
        viz[i]=0;


    maxim=-1;
    dfs(pmax, 1);

    fout<<maxim<<'\n';

    return 0;
}

void dfs(int x, int dist)
{
    int big=a[x].size(), i;

    viz[x] = 1;

    if(dist>maxim)
        {maxim=dist;
        pmax=x;}

    for (i=0; i<big; i++)
        {if (!viz[a[x][i]])
            dfs(a[x][i], dist+1);
        }

}