Cod sursa(job #2677476)

Utilizator ElektrykT E S L A P E F E L I E Elektryk Data 26 noiembrie 2020 17:19:14
Problema Diametrul unui arbore Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.83 kb
#include <fstream>
#include <vector>
#include <cstring>

using namespace std;

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

void dfs ( int nod );

int n;

int sorin;

int x, y;

vector < int > v[100137];

int viz[100137];

int mx;

int main()
{
    in >> n;
    for ( int i = 1 ; i <= n ; ++i )
    {
        in >> x >> y;
        v[x].push_back (y);
        v[y].push_back (x);
    }
    viz[1] = 1;
    dfs (1);
    memset ( viz, 0, sizeof (viz) );
    viz[sorin] = 1;
    dfs (sorin);
    out << mx;
    return 0;
}

void dfs ( int nod )
{
    for ( auto i : v[nod] )
        if ( !viz[i] )
        {
            viz[i] = viz[nod] + 1;
            if ( mx < viz[i] )
            {
                mx = viz[i];
                sorin = i;
            }
            dfs (i);
        }
}