Pagini recente » Cod sursa (job #2561005) | Cod sursa (job #291832) | Cod sursa (job #295021) | Cod sursa (job #1770670) | Cod sursa (job #312428)
Cod sursa(job #312428)
#include<cstdio>
#include<vector>
#include<string>
using namespace std;
#define MAX_N 100005
vector<int>G[MAX_N];
int N,T;
int Timp[MAX_N];
inline int maxim(int a, int b){ return (a>b)?a:b; }
struct cmp
{
bool operator()(const int &a,const int &b)const
{
return (Timp[a] > Timp[b]);
}
};
void df(int x)
{
unsigned i,y;
for( i=0; i<G[x].size(); ++i) df(G[x][i]);
Timp[x] = 0;
sort(G[x].begin(),G[x].end(), cmp());
for(i = 0; i<G[x].size(); ++i)
{
y = G[x][i];
Timp[x] = maxim(Timp[x], Timp[y] + i + 1);
}
}
void solve()
{
int i;
scanf("%d",&N);
int x,y;
for(i=0;i<=N;++i) G[i].clear();
for(i=1;i<N;++i)
{
scanf("%d%d",&x,&y);
G[x].push_back(y);
}
df(1);
printf("%d\n",Timp[1]);
}
int main()
{
N = 0;
freopen("zvon.in","r",stdin);
freopen("zvon.out","w",stdout);
scanf("%d",&T);
while(T--) solve();
return 0;
}