Cod sursa(job #2188594)

Utilizator mihai50000Mihai-Cristian Popescu mihai50000 Data 27 martie 2018 11:35:26
Problema Zvon Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
ifstream f("zvon.in");
ofstream g("zvon.out");
const int NMAX = 100005;
vector <int> v[NMAX];
int n, m, d[NMAX];
void in()
{
	for (int i = 1; i <= n; i++)
		v[i].clear(), d[i] = 0;
	f >> n;
	for (int i = 1; i < n; i++)
	{
		int x, y;
		f >> x >> y;
		v[x].push_back(y);
	}
}
bool cmp(int a, int b)
{
	return d[a] > d[b];
}
int max(int a, int b)
{
	if (a > b)
		return a;
	return b;
}
void DFS(int nod)
{
	if (!v[nod].size())
	{
		d[nod] = 0;
		return;
	}
	for (int i = 0; i < v[nod].size(); i++)
		DFS(v[nod][i]);
	sort(v[nod].begin(), v[nod].end(), cmp);
	for (int i = 0; i < v[nod].size(); i++)
		d[nod] = max(d[nod], i + 1 + d[v[nod][i]]);
}
void out()
{
	g << d[1] << "\n";
}
int main()
{
	int nr_teste;
	f >> nr_teste;
	while (nr_teste--)
	{
		in();
		DFS(1);
		out();
	}
}