Cod sursa(job #1436419)

Utilizator Eugen01Vasilescu Eugen Eugen01 Data 15 mai 2015 21:20:52
Problema Zvon Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <set>

#define Nmax 100005

std::ifstream in("zvon.in");
std::ofstream out("zvon.out");

std::vector<int> G[Nmax];

int DFS(int node) {

    std::multiset<int> S;

    for (int i = 0; i < G[node].size(); i++) {
        int nextNode = G[node][i];

        S.insert(DFS(nextNode));
    }

    int result = 0, cnt = 1;
    for (std::set<int> :: reverse_iterator it = S.rbegin(); it != S.rend(); it++) {
        result = std::max(result, *it + cnt);
        cnt++;
    }

    return result;
}

int main() {

    int t;
    in >> t;

    while (t--) {
        int N;
        in >> N;

        for (int i = 1; i <= N;i ++)
            G[i].clear();

        for (int i = 1; i < N; i++) {
            int x, y;
            in >> x >> y;

            G[x].push_back(y);
        }

        out << DFS(1) << "\n";
    }
}