Cod sursa(job #1424305)

Utilizator paunmatei7FMI Paun Matei paunmatei7 Data 23 aprilie 2015 21:29:42
Problema Zvon Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <cstdio>
#include <vector>
#include <algorithm>
#include <cstring>

#define NMAX 100007

using namespace std;

int T, n, Dp[NMAX];
vector < int > v[NMAX];

bool Cmp(int A, int B){
    return Dp[A] > Dp[B];
}

void dfs(int Nod){
    for(int i = 0; i < v[Nod].size(); ++i)
        dfs(v[Nod][i]);
    sort(v[Nod].begin(), v[Nod].end(), Cmp);
    for(int i = 0; i < v[Nod].size(); ++i)
        Dp[Nod] = max(Dp[Nod], Dp[v[Nod][i]] + i + 1);
}

int main(){
    freopen("zvon.in", "r", stdin);
    freopen("zvon.out", "w", stdout);
    scanf("%d", &T);
    while(T){
        --T;
        scanf("%d", &n);
        memset(Dp, 0, sizeof(Dp));
        for(int i = 1; i < n; ++i){
            v[i].clear();
            int x, y;
            scanf("%d %d", &x, &y);
            v[x].push_back(y);
        }
        dfs(1);
        printf("%d\n", Dp[1]);
    }
    return 0;
}