Cod sursa(job #2030787)

Utilizator osiaccrCristian Osiac osiaccr Data 2 octombrie 2017 11:51:50
Problema Diametrul unui arbore Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <fstream>
#include <vector>
#define DEF 100001

using namespace std;

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

int n, Max, pMax, viz[DEF];

vector <int> N[DEF];

void dfs (int nod, int niv) {
    viz[nod] = 1;
    if (Max < niv) {
        Max = niv;
        pMax = nod;
    }
    for (int i = 0; i < N[nod].size (); i++) {
        if (viz[N[nod][i]] == 0)
            dfs (N[nod][i], niv + 1);
    }
}

int main () {
    fin >> n;
    for (int i = 1; i <= n; i++) {
        int x, y;
        fin >> x >> y;
        N[x].push_back (y);
        N[y].push_back (x);
    }
    dfs (1, 1);
    for (int i = 1; i <= n; i++)
        viz[i] = 0;
    int temp = pMax;
    Max = pMax = 0;
    dfs (temp, 1);
    fout << Max;
    return 0;
}