Pagini recente » Cod sursa (job #1582587) | Cod sursa (job #153434) | Cod sursa (job #484713) | Cod sursa (job #98919) | Cod sursa (job #962780)
Cod sursa(job #962780)
#include <algorithm>
#include <fstream>
#include <vector>
using namespace std;
const int Nmax = 100010;
ifstream F("zvon.in");
ofstream G("zvon.out");
int T,N,D[Nmax];
vector<int> A[Nmax];
struct cmp
{
inline bool operator() (const int &a, const int &b)
{
return D[a] > D[b];
}
};
#define IT(type) vector<type>::iterator
void Get(int Nod)
{
D[Nod]=0;
for (IT(int) it=A[Nod].begin();it!=A[Nod].end();++it)
Get(*it);
if ( A[Nod].size() == 0 ) return;
sort(A[Nod].begin(),A[Nod].end(),cmp());
for (unsigned int i=0,before=1;i<A[Nod].size();++i)
D[Nod] = max( D[ A[Nod][i] ] + int(i) + 1, D[Nod] );
}
int main()
{
F>>T;
while ( T-- )
{
F>>N;
for (int i=1,x,y;i<N;++i)
{
F>>x>>y;
A[x].push_back(y);
}
Get(1);
G<<D[1]<<'\n';
for(int i=1;i<=N;++i)
A[i].clear();
}
}