Cod sursa(job #2433690)

Utilizator alextodoranTodoran Alexandru Raul alextodoran Data 28 iunie 2019 16:35:28
Problema Diametrul unui arbore Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.72 kb
#include <bits/stdc++.h>

#define N_MAX 100002

using namespace std;

int n;

vector <int> edges[N_MAX];

bool visited[N_MAX];

int mx, umx;

void dfs (int node, int d = 1)
{
    visited[node] = true;
    if(d > mx)
    {
        mx = d;
        umx = node;
    }
    for(int u : edges[node])
        if(visited[u] == false)
            dfs(u, d + 1);
}

int main()
{
    ifstream fin ("darb.in");
    ofstream fout ("darb.out");
    fin >> n;
    for(int i = 1; i < n; i++)
    {
        int u, v;
        fin >> u >> v;
        edges[u].push_back(v);
        edges[v].push_back(u);
    }
    dfs(1);
    memset(visited, 0, sizeof(visited));
    dfs(umx);
    fout << mx << "\n";
    return 0;
}