Cod sursa(job #210883)

Utilizator Mishu91Andrei Misarca Mishu91 Data 29 septembrie 2008 20:05:02
Problema Zvon Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std;

#define MAX_N 100003
#define pb push_back

int T, N, Niv[MAX_N];
vector <int> V[MAX_N];

struct cmp
{
    bool operator()(const int &a, const int &b)
    {
        return Niv[a] > Niv[b];
    }
};

void get_level(int k)
{
    for(int i = 0; i < V[k].size(); ++i)
    {
        int t = V[k][i];
        get_level(t);
    }
    Niv[k] = 0;
    sort(V[k].begin(),V[k].end(),cmp());
    for(int i = 0; i < V[k].size();++i)
        Niv[k] = max(Niv[k], Niv[V[k][i]] + i + 1);
}

void citire()
{
    int a,b;
    scanf("%d",&N);
    for(int i = 1; i < N; ++i)
    {
        scanf("%d %d",&a,&b);
        V[a].pb(b);
    }
    get_level(1);
    printf("%d\n",Niv[1]);
}

int main()
{
    freopen("zvon.in","rt",stdin);
    freopen("zvon.out","wt",stdout);
    scanf("%d",&T);
    while(T--)
    {
        for(int i = 0; i < N; ++i)
            V[i].clear();
        citire();
    }
}