Pagini recente » Cod sursa (job #2050088) | Cod sursa (job #1779295) | Cod sursa (job #2129793) | Cod sursa (job #2693718) | Cod sursa (job #100986)
Cod sursa(job #100986)
#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std;
#define PB push_back
const int NMAX = 1 << 17;
int N;
vector <int> G[NMAX], T[NMAX];
int DFS(int k) {
int i, ret = 0;
for (i = 0; i < (int) G[k].size(); ++i)
T[k].PB( DFS(G[k][i]) );
sort(T[k].begin(), T[k].end());
// printf("%u %u\n", T[k].size(), G[k].size());
for (i = 0; i < (int) T[k].size(); ++i)
ret = max(ret, T[k][i] + ((int)T[k].size() - i));
return ret;
}
int main(void) {
FILE *fin = fopen("zvon.in", "rt");
FILE *fout = fopen("zvon.out", "wt");
int test, i, u, v;
fscanf(fin, " %d", &test);
while (test--) {
fscanf(fin, " %d", &N);
for (i = 1; i < N; ++i) {
fscanf(fin, " %d %d", &u, &v);
G[u].PB(v);
}
fprintf(fout, "%d\n", DFS(1));
for (i = 0; i < N; ++i)
if (!G[i].empty())
vector<int>().swap(G[i]),
vector<int>().swap(T[i]);
}
fclose(fin);
fclose(fout);
return 0;
}