Cod sursa(job #2777428)

Utilizator lucamLuca Mazilescu lucam Data 23 septembrie 2021 11:45:04
Problema Zvon Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <fstream>
#include <vector>
#include <algorithm>

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

const int N = 1e5;
std::vector<int> g[N + 1];

int dfs(int node) {
    int ret = 0;
    std::vector<int> times;
    int sz = g[node].size();
    times.reserve(sz);
    for (auto x : g[node]) {
        times.push_back(dfs(x));
    }
    std::sort(times.begin(), times.end(), std::greater<int>());
    for (int i = 0; i < sz; ++i) {
        ret = std::max(times[i] + i + 1, ret);
    }
    return ret;
}

void test() {
    int n;
    in >> n;
    for (int i = 1; i < n; ++i) {
        int a, b;
        in >> a >> b;
        g[a].push_back(b);
    }
    out << dfs(1) << '\n';
    for (int i = 1; i <= n; ++i) {
        g[i].clear();
    }
}

int main() {
    int t;
    in >> t;
    for (int i = 0; i < t; ++i) {
        test();
    }
}