Cod sursa(job #2145148)

Utilizator filip.mihalutMihalut Filip filip.mihalut Data 27 februarie 2018 09:58:15
Problema Diametrul unui arbore Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <bits/stdc++.h>
#define Nmax 100005

using namespace std;

ifstream f ("darb.in");
ofstream g ("darb.out");

int seen[Nmax],Max,x,n,i,y;
vector < int > v[Nmax];

void dfs(int nod,int bloc)
{
    if(Max < bloc)
        Max = bloc , x = nod;
    int l = v[nod].size(),next_nod;
    for(int i = 0;i < l;i++)
    {
        next_nod = v[nod][i];
        if(not seen[next_nod])
            seen[next_nod] = 1, dfs(next_nod, bloc + 1);
    }
}

int main()
{
    f >> n;
    for(i = 1;i <= n- 1;i++)
    {
        f >> x >> y;
        v[x].push_back(y);
        v[y].push_back(x);
    }
    seen[1] = 1;
    dfs(1 , 1);
    memset(seen, 0 , sizeof(seen));
    seen[x] = 1;
    Max = 0;
    dfs(x,1);
    g << Max;
    return 0;
}