Cod sursa(job #2560811)

Utilizator ioana_marinescuMarinescu Ioana ioana_marinescu Data 28 februarie 2020 11:53:11
Problema Diametrul unui arbore Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.65 kb
#include <bits/stdc++.h>

using namespace std;

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

const int MAX_N = 100000;

int n, sol_nod, dmax;
bool vis[MAX_N + 5];

vector<int> G[MAX_N + 5];

void dfs(int nod, int dist) {
    vis[nod] = 1;

    for (int v : G[nod])
        if (!vis[v])
            dfs(v, dist + 1);

    if (dist > dmax) {
        dmax = dist;
        sol_nod = nod;
    }
}

int main() {
    fin >> n;
    for (int i = 1; i < n; i++) {
        int a, b;
        fin >> a >> b;
        G[a].push_back(b);
        G[b].push_back(a);
    }

    dfs(1, 0);

    memset(vis, 0, n);

    dfs(sol_nod, 0);

    fout << dmax + 1;
    return 0;
}