Cod sursa(job #2800713)

Utilizator Ionut10Floristean Ioan Ionut10 Data 13 noiembrie 2021 19:29:58
Problema Diametrul unui arbore Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.76 kb
#include <bits/stdc++.h>
#define DimMax 100000

using namespace std;

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

int n;
int u, v;
int nod, dmax;
int d[DimMax + 1];
vector<int> adj[DimMax + 1];

void dfs ( int x, int p )
{
    for ( auto v: adj[x] )
        if ( v != p )
        {
            d[v] = d[x] + 1;
            if ( d[v] > dmax )
            {
                dmax = d[v];
                nod = v;
            }
            dfs(v, x);
        }
}

int main()
{
    fin >> n;
    for ( int i = 1; i < n; i++ )
    {
        fin >> u >> v;
        adj[u].push_back(v);
        adj[v].push_back(u);
    }

    dfs(1, 1);
    d[nod] = 0; dmax = 0;
    dfs(nod, nod);
    fout << d[nod] + 1;
    return 0;
}