Pagini recente » Cod sursa (job #3186335) | Cod sursa (job #2530080) | Cod sursa (job #493769) | Cod sursa (job #1541790) | Cod sursa (job #1341496)
#include<fstream>
#include<algorithm>
#include<vector>
#include<iostream>
using namespace std;
ifstream in("zvon.in");
ofstream out("zvon.out");
const int NMAX = 100000;
vector<int> v[NMAX + 5];
int sol[NMAX + 5],n;
void init()
{
for(int i = 1 ; i <= n ; i++){
v[i].clear();
sol[i] = 0;
}
}
bool cmp(int a,int b)
{
return sol[a] > sol[b];
}
void dfs(int nod)
{
for(int i = 0 ; i < v[nod].size() ; i++)
dfs(v[nod][i]);
int maxim = 0;
sort(v[nod].begin(),v[nod].end(),cmp);
for(int i = 0 ; i < v[nod].size() ; i++){
maxim = max(maxim,sol[v[nod][i]] + i + 1);
}
sol[nod] = maxim;
}
void read()
{
int a,b;
for(int i = 1 ; i < n ; i++){
in>>a>>b;
v[a].push_back(b);
}
}
int main()
{
int T;
in>>T;
for(; T ; --T){
in>>n;
init();
read();
dfs(1);
out<<sol[1]<<"\n";
}
out.close();
in.close();
return 0;
}