Cod sursa(job #2541974)

Utilizator sichetpaulSichet Paul sichetpaul Data 9 februarie 2020 11:48:48
Problema Zvon Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <bits/stdc++.h>
#define Nmax 100005
#define nr first
#define pos second
using namespace std;

ifstream f("zvon.in");
ofstream g("zvon.out");

int N, T, ans;
int dp[Nmax], t[Nmax], v[Nmax];
vector<int> G[Nmax];

void DFS(int node) {
    for (auto it: G[node])
        DFS(it);

    int K = 0;
    for (auto it: G[node])
        v[++K] = dp[it];
    sort(v + 1, v + K + 1);

    for (int i = 1; i <= K; ++i)
       dp[node] = max(dp[node], v[i] + K - i + 1);
}
int main()
{
    f >> T;
    for (int tt = 1; tt <= T; ++tt) {
        f >> N;
        for (int i = 1; i <= N; ++i)
            dp[i] = t[i] = 0, G[i].clear();

        for (int i = 1; i < N; ++i) {
            int x, y;
            f >> x >> y;
            G[x].push_back(y);
        }

        DFS(1);
        g << dp[1] << '\n';
    }
    return 0;
}