Cod sursa(job #210469)

Utilizator RobytzzaIonescu Robert Marius Robytzza Data 27 septembrie 2008 20:56:53
Problema Zvon Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.1 kb
#include <fstream>
#include <algorithm>
#define MAX 100010

using namespace std;

ifstream fin ("zvon.in");
ofstream fout ("zvon.out");

struct nod
{
    int inf;
    nod* urm;
};
typedef struct nod nod;
nod *s[MAX];
int sir[MAX],n;

int numara(int x)
{
    if (!s[x])
        return 0;
    else
    {
        int niv[MAX],nr=0;;
        for (nod *i=s[x];i;i=i->urm)
            niv[nr++]=numara(i->inf);
        sort(niv,niv+nr);
        int max=0;
        for (int i=0;i<nr;i++)
            if ((niv[i]+nr-i)>max)
                max=niv[i]+nr-i;
        return max;
    }
}

void baga(int x,int y)
{
    nod *q=new nod;
    q->inf=y;
    q->urm=s[x];
    s[x]=q;
}

void citire()
{
    int a,b;
    fin>>n;
    for (int i=0;i<n-1;i++)
    {
        fin>>a>>b;
        baga(a,b);
    }
    if (n!=1)
        fout<<numara(1)<<"\n";
    else
        fout<<"0\n";

    for (int i=0;i<n;i++)
    {
        s[i]=NULL;
        sir[i]=0;
    }
}

int main ()
{
    int t;
    fin>>t;
    while(t)
    {
        citire();
        t--;
    }
    return 0;
}