Cod sursa(job #312428)

Utilizator FlorianFlorian Marcu Florian Data 5 mai 2009 22:53:34
Problema Zvon Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#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;
}