Pagini recente » Cod sursa (job #3282162) | Cod sursa (job #1892493) | Cod sursa (job #21899) | Cod sursa (job #2831663) | Cod sursa (job #750453)
Cod sursa(job #750453)
#include<stdio.h>
#include<vector>
#include<algorithm>
#define maxn 100005
#define pb push_back
using namespace std;
FILE*f=fopen("zvon.in","r");
FILE*g=fopen("zvon.out","w");
int n;
int D[maxn];
vector<int>G[maxn];
struct cmp{
inline bool operator () ( const int &a , const int &b ){
return D[a] > D[b];
}
};
void dfs ( int nod ){
for ( vector<int>::iterator itt = G[nod].begin() ; itt != G[nod].end() ; ++itt ){
dfs(*itt);
}
sort(G[nod].begin(),G[nod].end(),cmp());
for ( int i = 0 ; i < G[nod].size() ; ++i ){
D[nod] = max(D[nod],D[G[nod][i]]+i+1);
}
}
int main () {
int t;
fscanf(f,"%d",&t);
for ( int ii = 1 ; ii <= t ; ++ii ){
fscanf(f,"%d",&n);
for ( int i = 1 ; i <= n ; ++i ){
G[i].clear(); D[i] = 0;
}
int a,b;
for ( int i = 1 ; i < n ; ++i ){
fscanf(f,"%d %d",&a,&b);
G[a].pb(b);
}
dfs(1);
fprintf(g,"%d\n",D[1]);
}
fclose(f);
fclose(g);
return 0;
}