Cod sursa(job #210910)

Utilizator catalina5catalina serban catalina5 Data 29 septembrie 2008 21:54:15
Problema Zvon Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.09 kb

#include <fstream>
#include <algorithm>

using namespace std;

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

struct nod
{
    int info;
    nod* urm;
};
nod *s[100010];
int a[100010],n;
void add(int x,int y){
    nod *q=new nod;
    q->info=y;
    q->urm=s[x];
    s[x]=q;
}
int nr(int x){
    if (!s[x])
        return 0;
    else{
        int niv[n],nr1=0;;
        for (nod *j=s[x];j;j=j->urm)
            niv[nr1++]=nr(j->info);
        sort(niv,niv+nr1);
        int max=0;
        for (int i=0;i<nr1;i++)
            if (max<(niv[i]+nr1-i))
                max=niv[i]+nr1-i;
        return max;
    }
}


void citire(){
    int x,y;
    fin>>n;
    for (int i=0;i<n-1;i++)
    {
        fin>>x>>y;
        add(x,y);
    }
    if (n!=1)
        fout<<nr(1)<<"\n";
    else
        fout<<"0"<<"\n";

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


void parcurgere(){
    int nr;
    fin>>nr;
    for(int i=0;i<nr;i++)
        citire();
    }

int main (){
    int nr;
    parcurgere();
    return 0;
}