Pagini recente » Cod sursa (job #2842536) | Cod sursa (job #1772593) | Cod sursa (job #266772) | Cod sursa (job #20440) | Cod sursa (job #606916)
Cod sursa(job #606916)
#include <cstring>
#include <fstream>
#include <algorithm>
#include <vector>
using namespace std;
typedef vector<int> VI;
int T, N;
vector<VI> V;
int Tmin[100002], result;
inline bool compare(const int& i1, const int& i2)
{
return Tmin[i1] > Tmin[i2];
}
void comp(int x)
{
for (VI::iterator it = V[x].begin(); it != V[x].end(); ++it)
comp(*it);
sort(V[x].begin(), V[x].end(), compare);
for (VI::iterator it = V[x].begin(); it != V[x].end(); ++it)
Tmin[x] = max(Tmin[x], Tmin[*it] + it - V[x].begin() + 1);
result = max(result, Tmin[x]);
}
int main()
{
ifstream fin("zvon.in");
ofstream fout("zvon.out");
fin >> T;
while (T--)
{
V.clear();
memset(Tmin, 0, sizeof(Tmin));
result = 0;
fin >> N;
V.resize(N + 1);
for (int i = 1, A, B; i < N; ++i)
{
fin >> A >> B;
V[A].push_back(B);
}
comp(1);
fout << result << '\n';
}
fin.close();
fout.close();
}