Pagini recente » Cod sursa (job #2306494) | Cod sursa (job #2194117) | Cod sursa (job #184978) | Cod sursa (job #1041747) | Cod sursa (job #1202661)
#include <fstream>
#include <vector>
#include <cstring>
#include <algorithm>
using namespace std;
ifstream is("zvon.in");
ofstream os("zvon.out");
int T, N, x, y;
vector <signed int> G[100001];
bool Vis[100001];
int R[100001];
void Query();
void DFS(int node);
void Clear();
bool Comp(int a, int b)
{
return R[a] > R[b];
}
int main()
{
is >> T;
for ( int i = 1; i <= T; ++i )
Query();
}
void Query()
{
is >> N;
for ( int i = 1; i <= N-1; ++i )
{
is >> x >> y;
G[x].push_back(y);
}
DFS(1);
os << R[1] << '\n';
Clear();
}
void DFS(int node)
{
Vis[node] = true;
for ( int i = 0; i < G[node].size(); ++i )
{
if ( Vis[G[node][i]] == false )
{
Vis[G[node][i]] = true;
DFS(G[node][i]);
}
}
sort(G[node].begin(),G[node].end(),Comp);
for ( int i = 0; i < G[node].size(); ++i )
R[node] = max(R[node],R[G[node][i]] + i + 1);
}
void Clear()
{
for ( int i = 1; i <= N; ++i )
G[i].clear();
memset(Vis,0,sizeof(Vis));
memset(R,0,sizeof(R));
}