Cod sursa(job #957045)

Utilizator rudarelLup Ionut rudarel Data 4 iunie 2013 13:12:06
Problema Zvon Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include <stdio.h>
#include <vector>
#include <algorithm>
#include <functional>
using namespace std;
 
vector < long > A[100010];
long n,i,x,y,t;
 
 
long DF(long x) {
    vector<long>::iterator it, it2;
    vector<long> pui;
    long nr,i;
    for (it=A[x].begin(); it!=A[x].end(); it++) {
        pui.push_back( DF(*it) );
    }
    sort(pui.begin(), pui.end(), greater<long>());
//  printf("\n%ld: ",x);
    for (nr=0, i=1, it2=pui.begin(); it2!=pui.end(); ++it2, ++i) {
        nr = max(nr,i + *it2);
//      printf("%ld ", *it2);
    }
    return nr;
}
 
int main() {
    freopen("zvon.in", "r", stdin);
    freopen("zvon.out", "w", stdout);
 
    scanf("%ld", &t);
    while ( t-- ) {
        scanf("%ld", &n);
        for (i=0; i<n-1; ++i) {
            scanf("%ld %ld", &x, &y);
            A[x].push_back(y);
        }
        printf("%ld\n", DF(1));
        for (i=1; i<=n;++i)
            A[i].clear();
    }
 
    fclose(stdout);
    fclose(stdin);
    return 0;
}