Pagini recente » Cod sursa (job #871461) | 300 | Cod sursa (job #1975287) | Cod sursa (job #623669) | Cod sursa (job #916149)
Cod sursa(job #916149)
#include<cstdio>
#include<vector>
#include<algorithm>
#define pb push_back
#define nxt (*it)
#define FOR(i,a,b)\
for(int i=a; i<=b; ++i)
#define ALL(g)\
for(typeof(g.begin()) it=g.begin(); it!=g.end(); ++it)
#define infile "zvon.in"
#define outfile "zvon.out"
#define nMax 100005
using namespace std;
vector < int > v[nMax];
int DP[nMax];
int N, M, T;
inline void init(){
FOR(i,1,N){
DP[i] = 0;
v[i].clear();
}
}
void read(){
init();
scanf("%d", &N);
int x, y;
FOR(i,1,N-1){
scanf("%d %d", &x, &y);
v[x].pb(y);
}
}
bool cmp(const int &x, const int &y){
return DP[x] > DP[y];
}
void DF(int x){
ALL(v[x])
DF(nxt);
sort(v[x].begin(), v[x].end(), cmp);
int step = 0;
ALL(v[x])
DP[x] = max(DP[x], DP[nxt] + (++ step));
}
int main(){
freopen(infile, "r", stdin);
freopen(outfile, "w", stdout);
for(scanf("%d", &T); T; T--){
read();
DF(1);
printf("%d\n", DP[1]);
}
fclose(stdin);
fclose(stdout);
return 0;
}