Cod sursa(job #1996682)

Utilizator JustGingaGinga Tudor-Adrian JustGinga Data 2 iulie 2017 13:38:54
Problema Diametrul unui arbore Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <fstream>
#include <vector>
using namespace std;
ifstream in ("darb.in");
ofstream out ("darb.out");
vector <int> L[100001];
int n, nivMax, nodMax, viz[100001];

void DFS (int nod, int niv) {
    viz[nod] = 1;
    if (niv > nivMax) {
        nivMax = niv;
        nodMax = nod;
    }
    for (vector <int> :: iterator i = L[nod].begin(); i != L[nod].end(); i++)
        if (!viz[*i])
            DFS(*i, niv + 1);
}

int main() {
    in >> n;
    for (int i = 1, x, y; i < n; i++) {
        in >> x >> y;
        L[x].push_back(y);
        L[y].push_back(x);
    }
    DFS(1, 0);
    for (int i = 1; i < 100001; i++) viz[i] = 0;
    DFS(nodMax, 0);
    out << nivMax + 1 << '\n';
    out.close(); return 0;
}