Cod sursa(job #2673651)

Utilizator KPP17Popescu Paul KPP17 Data 17 noiembrie 2020 13:45:49
Problema Diametrul unui arbore Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.68 kb
#include <fstream>
#define fisier "darb"
std::ifstream in(fisier ".in");
std::ofstream out(fisier ".out");
const int N = 100000;
#include <vector>
std::vector<int> L[N];
int s, n, maxD, D[N];
void dfs(int t)
{
    for (int f: L[t])
        if (not D[f] and f != s)
        {
            D[f] = D[t] + 1;
            if (maxD < D[f])
                maxD = D[f], n = f;
            dfs(f);
        }
}
#include <algorithm>
int main()
{
    in >> n;
    while (--n)
    {
        int a, b;
        in >> a >> b;
        L[--a].push_back(--b);
        L[b].push_back(a);
    }
    dfs(0);
    std::fill(D, D + N, 0);
    s = n;
    dfs(n);
    out << maxD + 1;
}