Pagini recente » Cod sursa (job #769738) | Cod sursa (job #1452147) | Cod sursa (job #2203987) | Cod sursa (job #2808728) | Cod sursa (job #210469)
Cod sursa(job #210469)
#include <fstream>
#include <algorithm>
#define MAX 100010
using namespace std;
ifstream fin ("zvon.in");
ofstream fout ("zvon.out");
struct nod
{
int inf;
nod* urm;
};
typedef struct nod nod;
nod *s[MAX];
int sir[MAX],n;
int numara(int x)
{
if (!s[x])
return 0;
else
{
int niv[MAX],nr=0;;
for (nod *i=s[x];i;i=i->urm)
niv[nr++]=numara(i->inf);
sort(niv,niv+nr);
int max=0;
for (int i=0;i<nr;i++)
if ((niv[i]+nr-i)>max)
max=niv[i]+nr-i;
return max;
}
}
void baga(int x,int y)
{
nod *q=new nod;
q->inf=y;
q->urm=s[x];
s[x]=q;
}
void citire()
{
int a,b;
fin>>n;
for (int i=0;i<n-1;i++)
{
fin>>a>>b;
baga(a,b);
}
if (n!=1)
fout<<numara(1)<<"\n";
else
fout<<"0\n";
for (int i=0;i<n;i++)
{
s[i]=NULL;
sir[i]=0;
}
}
int main ()
{
int t;
fin>>t;
while(t)
{
citire();
t--;
}
return 0;
}