Cod sursa(job #3197724)

Utilizator AdrianRosuRosu Adrian Andrei AdrianRosu Data 27 ianuarie 2024 12:47:43
Problema Diametrul unui arbore Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.75 kb
#include <bits/stdc++.h>
#define DIM 100001

using namespace std;

ifstream fin("darb.in");

ofstream fout("darb.out");

vector <int> G[DIM];

int found[DIM];

int level, max_level, lowest_node, n, x, y, i;

void dfs(int node, int level){

    found[node] = true;

    if(level > max_level){

        max_level = level;

        lowest_node = node;

    }

    for(auto k : G[node])

        if(!found[k])

            dfs(k, level + 1);

}

int main(){

    fin >> n;

    for(i=1;i<=n-1;i++){

        fin >> x >> y;

        G[x].push_back(y);

        G[y].push_back(x);

    }

    dfs(1, 0);

    for(i=1;i<=n;i++)

        found[i] = false;

    dfs(lowest_node, 0);

    fout << ++max_level;


}