Pagini recente » Cod sursa (job #1425307) | Cod sursa (job #2903226) | Cod sursa (job #1812560) | Cod sursa (job #112711) | Cod sursa (job #238661)
Cod sursa(job #238661)
#include<cstdio>
#include<vector>
#include<algorithm>
using namespace std;
FILE*fin=fopen("zvon.in","r");
FILE*fout=fopen("zvon.out","w");
#define nmax 100003
vector<int> arb[nmax];
int ts[nmax],sol[nmax];
void df(int nod)
{
int j,d=arb[nod].size(),dts=0,r=0,a;
for(j=0;j<d;j++)
{
df(arb[nod][j]);
dts++;
ts[dts]=sol[arb[nod][j]];
}
sort(ts+1,ts+dts+1);
a=1;
for(j=d;j>=1;j--,a++)
if(ts[j]+a>r) r=ts[j]+a;
sol[nod]=r;
}
int main()
{
int i,j,t,n,a,b;
fscanf(fin,"%d",&t);
for(i=1;i<=t;i++)
{
fscanf(fin,"%d",&n);
for(j=1;j<=n;j++)
arb[j].clear();
for(j=1;j<n;j++)
{
fscanf(fin,"%d%d",&a,&b);
arb[a].push_back(b);
}
df(1);
fprintf(fout,"%d\n",sol[1]);
}
fclose(fin);
fclose(fout);
return 0;
}