Pagini recente » Cod sursa (job #2799750) | Cod sursa (job #3263449) | Cod sursa (job #29817) | Cod sursa (job #3224750) | Cod sursa (job #1235656)
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
ifstream fin("zvon.in");
ofstream fout("zvon.out");
const int MAXN = 100005;
int T, N, Tmin[MAXN];
vector <int> G[MAXN];
bool cmp(int a, int b)
{
return (Tmin[a] > Tmin[b]);
}
void DFS(int node)
{
for (vector <int> :: iterator it = G[node].begin(); it != G[node].end(); ++it)
{
int vecin = *it;
DFS(vecin);
}
sort(G[node].begin(), G[node].end(), cmp);
for (int i = 0; i < G[node].size(); ++i)
Tmin[node] = max(Tmin[node], Tmin[ G[node][i] ] + i + 1);
}
int main()
{
fin >> T;
for (; T; --T)
{
fin >> N;
for (int i = 1; i <= N; ++i)
{
G[i].clear();
Tmin[i] = 0;
}
for (int i = 1; i < N; ++i)
{
int a, b;
fin >> a >> b;
G[a].push_back(b);
}
DFS(1);
fout << Tmin[1] << '\n';
}
fin.close();
fout.close();
return 0;
}