Pagini recente » Cod sursa (job #1315681) | Cod sursa (job #2405190) | Cod sursa (job #124377) | Cod sursa (job #3167248) | Cod sursa (job #1929108)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#include <cstring>
using namespace std;
ifstream in("zvon.in");
ofstream fout("zvon.out");
int t,n;
const int NMAX = 100005;
vector<int> L[NMAX];
int R[NMAX];
void read(){
int x,y;
in >> n;
for(int i=1;i<n;i++){
in >> x >> y;
L[x].push_back(y);
}
}
bool cmp(int a, int b){
return R[a]>R[b];
}
int dfs(int nod){
int c=1;
for(int i = 0; i < L[nod].size(); i++)
{
dfs(L[nod][i]);
}
/*for(auto x : L[st]){
dfs(x);
}*/
sort(L[nod].begin(),L[nod].end(),cmp);
for(int i = 0; i < L[nod].size(); i++)
{
int vecin = L[nod][i];
R[nod]=max(R[nod], R[vecin] + i + 1);
//c++;
}
}
void solve_test(){
dfs(1);
fout<<R[1]<<"\n";
memset(R,0,sizeof(R));
for(int i=1;i<=n;i++){
L[i].resize(0);
}
}
void solve(){
in>>t;
while(t --)
{
read();
solve_test();
}
}
int main(){
solve();
return 0;
}