Pagini recente » Cod sursa (job #1217333) | Cod sursa (job #680257) | Cod sursa (job #459987) | Cod sursa (job #1896224) | Cod sursa (job #1493692)
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
ifstream fin("zvon.in");
ofstream fout("zvon.out");
#define MaxN 100001
int t, n;
vector<int> G[MaxN];
int C[MaxN];
bool viz[MaxN];
bool Cmp(int i, int j)
{
return C[i] > C[j];
}
void Dfs(int);
void Reset();
int main()
{
fin >> t;
while(t)
{
fin >> n;
for ( int i = 1, x, y; i < n; ++i )
{
fin >> x >> y;
G[x].push_back(y);
}
Dfs(1);
fout << C[1] << '\n';
Reset();
t--;
}
fin.close();
fout.close();
return 0;
}
void Reset()
{
for ( int i = 1; i <= n; ++i ) {
viz[i] = false;
C[i] = 0;
G[i].clear();
}
}
void Dfs( int i )
{
viz[i] = true;
for ( auto p : G[i])
if ( !viz[p])
{
Dfs(p);
}
sort( G[i].begin() , G[i].end() , Cmp );
int cnt = 0;
for ( auto j : G[i] )
{
C[i] = max(C[i], C[j] + cnt + 1 );
cnt++;
}
}