Cod sursa(job #3289098)

Utilizator Robert_NicuNicu Robert Cristian Robert_Nicu Data 25 martie 2025 17:56:01
Problema Diametrul unui arbore Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.81 kb
#include <bits/stdc++.h>
#define DIM 100001
using namespace std;

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

int n, a, b, NETY, BRADESTI;

int i;

int dist[DIM];

vector <int> G[DIM];

void dfs(int nod, int COSTINEL, int NRC){

    dist[nod] = dist[COSTINEL] + 1;

    if(!NRC && dist[nod] > dist[NETY])

        NETY = nod;

    if(NRC && dist[nod] > dist[BRADESTI])

        BRADESTI = nod;

    for(auto k : G[nod]){

        if(k != COSTINEL){

            dfs(k, nod, NRC);

        }

    }

}

int main(){

    fin >> n;

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

        fin >> a >> b;

        G[a].push_back(b);

        G[b].push_back(a);

    }

    dfs(1, 0, 0);

    memset(dist, 0, sizeof(dist));

    dfs(NETY, 0, 1);

    fout << dist[BRADESTI];

}