Pagini recente » Cod sursa (job #1168268) | Cod sursa (job #2270516) | Cod sursa (job #1188295) | Cod sursa (job #2109688) | Cod sursa (job #482721)
Cod sursa(job #482721)
#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;
}