Cod sursa(job #482721)

Utilizator S7012MYPetru Trimbitas S7012MY Data 4 septembrie 2010 18:41:20
Problema Zvon Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <cstdio>
#include <cstring>
#include <algorithm>
#define DN 100005
using namespace std;

struct nod {
	int x;
	nod *urm;
} *v[DN];

void adaugare (int x, int y) {
	nod *p;
	p=new nod;
	p->x=y;
	p->urm=v[x];
	v[x]=p;
}


int dfs(int sursa) {
	nod *p;
	if(!v[sursa]) return 0;
	int a[DN],i,m=0,maxim=0;
	for (p=v[sursa]; p!=NULL; p=p->urm)
        a[++m]=dfs(p->x);
    sort (a+1,a+m+1);
    for (i=1; i<=m; ++i)
        if (a[i]+m-i+1>maxim)
            maxim=a[i]+m-i+1;
    return maxim;
}

void rezolva() {
	int n,i,x,y;
	scanf("%d",&n);
	for(i=1; i<n; ++i) {
		scanf("%d %d",&x,&y);
		adaugare(x,y);
	}
	printf("%d\n",dfs(1));
	memset(v,0,sizeof(v));
}

int main()
{
	int t;
	freopen("zvon.in","r",stdin);
	freopen("zvon.out","w",stdout);
	scanf("%d",&t);
	for(int i=1; i<=t; ++i) {
		rezolva();
	}
	return 0;
}