Pagini recente » Cod sursa (job #1553416) | Cod sursa (job #58602) | Cod sursa (job #1527609) | Cod sursa (job #321117) | Cod sursa (job #2172621)
#include <bits/stdc++.h>
std::ifstream in("zvon.in");
std::ofstream out("zvon.out");
using namespace std;
const int nmax=100001;
int t;
vector<int>G[nmax];
int d[nmax];
int n;
inline void input()
{
for(int i =1; i<=n;++i)
G[i].clear(),d[i]=0;
in >> n ;
for(int i =1 ; i<=n-1; ++i)
{
int x,y;
in>>x>>y;
G[x].push_back(y);
}
}
inline bool cmp(int i,int j)
{
return d[i]>d[j];
}
void dfs(int node)
{
if(!G[node].size())
{
d[node]=0;
return;
}
for(size_t y = 0 ; y<G[node].size();++y)
dfs(G[node][y]);
//merg la leafff <3
sort(G[node].begin(),G[node].end(),cmp);
for(int k = 0 ; k<G[node].size();++k)
{
d[node]=max(d[node],d[G[node][k]]+k+1);
}
}
int main()
{
in >> t;
for(int k=1;k<=t;++k)
{
input();
dfs(1);
out<<d[1]<<"\n";
}
return 0;
}