Pagini recente » Cod sursa (job #1747743) | Cod sursa (job #1720552) | Cod sursa (job #2352392) | Cod sursa (job #972382) | Cod sursa (job #176670)
Cod sursa(job #176670)
#include <cstdio>
#include <string.h>
#define NM 100001
using namespace std;
int n,t,rez[NM];
struct ch{int nod;ch*urm;}*g[NM];
void del(int k)
{ch *p;
while (g[k])
{p=g[k];
g[k]=g[k]->urm;
delete p;
}
}
void add(int x,int y)
{ch *p=new ch;
p->nod=y;
p->urm=g[x];
g[x]=p;
}
void calc(int k)
{ch *p;
int max=-1,nr;
if (!g[k]) {rez[k]=0;return;}
for (p=g[k];p;p=p->urm)
{calc(p->nod);
if (rez[p->nod]==max) nr++;
if (rez[p->nod]>max)
{max=rez[p->nod];
nr=1;
}
}
rez[k]=max+nr;
}
int main()
{freopen("zvon.in","r",stdin);
freopen("zvon.out","w",stdout);
scanf("%d",&t);
int k,i,x,y;
for (k=1;k<=t;k++)
{scanf("%d",&n);
for (i=1;i<=n;i++) del(i);
for (i=1;i<n;i++)
{scanf("%d %d",&x,&y);
add(x,y);
}
calc(1);
printf("%d\n",rez[1]);
}
return 0;
}