Cod sursa(job #1568795)

Utilizator ZimmyZimmermann Erich Zimmy Data 14 ianuarie 2016 18:33:30
Problema Diametrul unui arbore Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <fstream>
#include <vector>
#include <cmath>
#include <algorithm>

using namespace std;
ifstream f("darb.in");
ofstream g("darb.out");
vector<int> v[100010];
int n,m,i,j,k,a,b,sol,niv[100010];
void dfs(int,int);
int main()
{
    f>>n>>m;
    for(i=2;i<=n;i++)
    {
        f>>j>>k;
        v[j].push_back(k);
        v[k].push_back(j);
    }
    dfs(1,1);
    for(i=1;i<=n;i++)
    {
        if(niv[i]>niv[a])
            a=i;
        niv[i]=0;
    }
    dfs(a,1);
    for(i=1;i<=n;i++)
        sol=max(sol,niv[i]);
    g<<sol;
    return 0;
}
void dfs(int nod,int nivel)
{
    niv[nod]=nivel;
    for(auto it:v[nod])
        if(!niv[it])
            dfs(it,nivel+1);
}