Cod sursa(job #2769369)

Utilizator MindralexMindrila Alex Mindralex Data 14 august 2021 23:55:16
Problema Diametrul unui arbore Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.91 kb
#include <iostream>
#include <fstream>

using namespace std;

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

const int maxVal = 100001;

struct nod
{
    int info;
    nod * urm;
}* v[maxVal];

void adaugare (int x, int y)
{
    nod * t = new nod;
    t -> info = y;
    t -> urm = v[x];
    v[x] = t;
}

void dfs (int x, int h, int &hMax, int vizitat[])
{
    vizitat[x] = 1;
    nod * t = v[x];
    while (t)
    {
        if (vizitat[t -> info] == 0)
            dfs (t -> info, h+1, hMax, vizitat);
        t = t -> urm;
    }
    if (h > hMax)
        hMax = h;
}

int main()
{
    int n, x, y;
    fin >> n;
    while (fin >> x >> y)
    {
        adaugare (x, y);
        adaugare (y, x);
    }
    int hMax = 0;
    for (int i = 1; i <= n; i++)
    {
        int vizitat[maxVal] = {0};
        dfs(i, 1, hMax, vizitat);
    }
    fout << hMax;
    return 0;
}