Pagini recente » Cod sursa (job #2296064) | Cod sursa (job #3037929) | Cod sursa (job #3123025) | Cod sursa (job #310543) | Cod sursa (job #2404940)
#include<fstream>
#include<vector>
#include<algorithm>
using namespace std;
ifstream f ("zvon.in");
ofstream g ("zvon.out");
vector<int>G[100010];
int timp[100010],n,x,y,test;
void dfs(int x){
if(G[x].size()!=0){
int numar=G[x].size();
int k=0;
int vec[100010];
for(int i=0;i<numar;++i){
dfs(G[x][i]);
vec[++k]=timp[G[x][i]];
}
sort(vec+1,vec+k+1);
for(int i=k;i>=1;--i){
timp[x]=max(timp[x],vec[i]+k-i+1);
}
}
}
int main()
{
f>>test;
for(int j=1;j<=test;++j){
f>>n;
for(int i=1;i<n;++i){
f>>x>>y;
G[x].push_back(y);
}
dfs(1);
g<<timp[1]<<'\n';
for(int i=1;i<=n;++i){
timp[i]=0;
G[x].clear();
}
}
}