Cod sursa(job #2349035)

Utilizator Anastasia11Susciuc Anastasia Anastasia11 Data 20 februarie 2019 09:36:23
Problema Diametrul unui arbore Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.84 kb
#include <fstream>
#include <cstdio>
#include <vector>
#include <cstring>
#define Nmax 100001

using namespace std;

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

int n, lmax, nod;
vector <int> v[Nmax];
bool seen[Nmax];

void dfs(int x, int niv)
{
    seen[x]=1;
    for (int i = 0, l=v[x].size(); i < l; i++)
    {
        int y=v[x][i];
        if(seen[y] == 1) continue;
        if(niv > lmax)
        {
            lmax=niv;
            nod=y;
        }
        dfs(y, niv+1);
    }
}

int main()
{
    f >> n;
    for (int i = 2, x, y; i <= n; i++)
    {
        f >> x >> y;
        v[x].push_back(y);
        v[y].push_back(x);
    }
    dfs(1, 1);
    //g << lmax << " " << nod << '\n';
    lmax=0;
    memset(seen, 0, sizeof(seen));
    dfs(nod, 1);
    g << lmax+1;// << " " << nod;

    return 0;
}