Cod sursa(job #100837)

Utilizator dominoMircea Pasoi domino Data 12 noiembrie 2007 19:35:39
Problema Zvon Scor 100
Compilator cpp Status done
Runda Happy Coding 2007 Marime 0.95 kb
#include <stdio.h>
#include <algorithm>
#include <vector>

using namespace std;

#define MAX_N 100005
#define FIN "zvon.in"
#define FOUT "zvon.out"
#define pb push_back

int T, N;
vector<int> G[MAX_N];

int solve(int n)
{
    vector<int> V;
    vector<int>::iterator it;

    int ret = 0;
    for (it = G[n].begin(); it != G[n].end(); ++it)
        V.pb(-solve(*it));
    sort(V.begin(), V.end());
    int cnt = 1;
    for (it = V.begin(); it != V.end(); ++it, ++cnt)
        ret = max(ret, cnt-*it);
    return ret;
}

int main(void)
{
    int i, a, b;

    freopen(FIN, "r", stdin);
    freopen(FOUT, "w", stdout);

    for (scanf("%d", &T); T; --T)
    {
        scanf("%d", &N);
        for (i = 1; i <= N; ++i)
            G[i].clear();
        for (i = 1; i < N; ++i)
        {
            scanf("%d %d", &a, &b);
            G[a].pb(b);
        }
        printf("%d\n", solve(1));
    }
    
    return 0;
}