Pagini recente » Cod sursa (job #2227743) | Cod sursa (job #1464640) | Cod sursa (job #1575968) | Cod sursa (job #1085246) | Cod sursa (job #750976)
Cod sursa(job #750976)
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
const char InFile[]="zvon.in";
const char OutFile[]="zvon.out";
const int MaxN=100111;
ifstream fin(InFile);
ofstream fout(OutFile);
int T,N,x,y,viz[MaxN],H[MaxN];
vector<int> A[MaxN];
struct cmp
{
inline bool operator() (const int &a, const int &b)
{
return H[a]>H[b];
}
};
void DFS(int nod)
{
for(vector<int>::iterator it=A[nod].begin();it!=A[nod].end();++it)
{
DFS(*it);
}
if(A[nod].size()==0)
{
H[nod]=0;
}
else
{
sort(A[nod].begin(),A[nod].end(),cmp());
int ind=0;
for(vector<int>::iterator it=A[nod].begin();it!=A[nod].end();++it)
{
int tmp=H[*it]+1+ind;
if(tmp>H[nod])
{
H[nod]=tmp;
}
++ind;
}
}
}
int main()
{
fin>>T;
for(;T;--T)
{
fin>>N;
for(register int i=1;i<N;++i)
{
fin>>x>>y;
A[x].push_back(y);
}
DFS(1);
for(register int i=1;i<=N;++i)
{
A[i].clear();
}
fout<<H[1]<<"\n";
}
fin.close();
fout.close();
return 0;
}