Cod sursa(job #2815409)

Utilizator AndreeaCreitaCreita Andreea AndreeaCreita Data 9 decembrie 2021 16:17:25
Problema Diametrul unui arbore Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.89 kb
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
ifstream in("darb.in");
ofstream out("darb.out");
vector<int> l[100005];
int vizitat[100005];
int n;
int nivelMaxim, pozitieNivel;  //nivMaxim - nr de noduri dintre 2 frunz


void dfs_arb(int nod, int nivel)
{
    vizitat[nod] = 1;
    if(nivel >= nivelMaxim)
    {
        nivelMaxim=nivel;
        pozitieNivel=nod;
    }
    for(auto el:l[nod])
    {
        if(vizitat[el]==0)
        {
            dfs_arb(el,nivel+1);
        }
    }
}

void afisare_darb()
{
    int x,y;
    in>>n;
    for(int i=0;i<n;++i)
    {
        in>>x>>y;
        l[x].push_back(y);
        l[y].push_back(x);
    }

    dfs_arb(1,0);

    for(int i = 0; i<n; ++i)
    {
        vizitat[i]=0;
    }

    dfs_arb(pozitieNivel, 0);

    out<<nivelMaxim+1;
}

int main()
{
    afisare_darb();
    return 0;
}