Pagini recente » Cod sursa (job #2695340) | Cod sursa (job #722691) | Cod sursa (job #2298188) | Cod sursa (job #2418562) | Cod sursa (job #1453279)
#include <fstream>
#include <set>
#include <vector>
#include <cstring>
#define Nmax 100010
using namespace std;
ifstream fin ("zvon.in");
ofstream fout ("zvon.out");
int T, N, A[Nmax];
vector < int > V[Nmax];
void Reset_Values()
{
memset(A, 0, sizeof(A));
for (int i = 1; i <= N; i++) V[i].clear();
}
int DFS(int nod)
{
multiset < int > H;
for (vector < int > :: iterator it = V[nod].begin(); it != V[nod].end(); it++)
{
H.insert(DFS(*it));
}
int result = 0, cnt = 1;
for (set < int > :: reverse_iterator it = H.rbegin(); it != H.rend(); it++)
{
result = max (result, *it + cnt);
cnt ++;
}
return result;
}
int main()
{
fin >> T;
while (T--)
{
Reset_Values();
fin >> N;
for (int i = 1, x, y; i < N; i++)
{
fin >> x >> y;
V[x].push_back(y);
}
fout << DFS(1) << '\n';
}
return 0;
}