Cod sursa(job #2648174)

Utilizator PatrickCplusplusPatrick Kristian Ondreovici PatrickCplusplus Data 9 septembrie 2020 11:51:51
Problema Diametrul unui arbore Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.81 kb
#include <bits/stdc++.h>

using namespace std;

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

const int nmax = 100005;
int n, maxim = 0, capat;
bool viz[nmax];
vector <int> G[nmax];

void dfs(int nod, int lungime){
    viz[nod] = true;
    if (lungime > maxim){
        maxim = lungime;
        capat = nod;
    }
    for (auto vecin : G[nod]){
        if (viz[vecin] == false){
            dfs(vecin, lungime + 1);
        }
    }
}

int main(){
    fin >> n;
    for (int i = 1; i < n; ++i){
        int x, y;
        fin >> x >> y;
        G[x].push_back(y);
        G[y].push_back(x);
    }
    dfs(1, 1);
    maxim = 0;
    for (int i = 1; i <= n; ++i){
        viz[i] = false;
    }
    dfs(capat, 1);
    fout << maxim;
    fin.close();
    fout.close();
    return 0;
}