Pagini recente » Cod sursa (job #1383252) | Cod sursa (job #1949482) | Cod sursa (job #1760158) | Cod sursa (job #2854758) | Cod sursa (job #1419783)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#include <stdio.h>
#include<string.h>
#include <cstring>
#define NMax 100005
using namespace std;
vector<int> Graf[NMax];
int N,T,a,b,Timp[NMax];
class Compara
{
public:
bool operator()( const int &x, const int &y )
{
return Timp[x]>Timp[y];
}
};
void DFS(int nod)
{
for(int i=0;i<Graf[nod].size();++i)
DFS(Graf[nod][i]);
sort(Graf[nod].begin(),Graf[nod].end(),Compara());
for(int i=0;i<Graf[nod].size();i++)
Timp[nod]=max(Timp[nod],Timp[Graf[nod][i]]+int(i)+1);
}
void Read()
{
freopen("zvon.in","r",stdin);
freopen("zvon.out","w",stdout);
scanf("%d",&T);
memset(Timp,0,sizeof(Timp));
for(;T;--T)
{
scanf("%d",&N);
for(int i=1;a,b,i<N;++i)
{
scanf("%d%d",&a,&b);
Graf[a].push_back(b);
}
DFS(1);
printf("%d\n",Timp[1]);
memset(Timp,0,sizeof(Timp));
memset(Graf,0,sizeof Graf);
}
}
int main()
{
Read();
}