Cod sursa(job #2249497)

Utilizator agrtAndreea G agrt Data 29 septembrie 2018 22:50:25
Problema Zvon Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.03 kb
#include <fstream>
#include <iostream>
#include <vector>
#include <queue>
#include <utility>
#include <cstring>
#include <algorithm>

using namespace std;
vector<int> angs[100010];
int angajati;

bool compar(int a, int b) { 
	return a > b;
}

int get_num(int node) {
	vector<int> values;
	for (size_t i = 0; i < angs[node].size(); i++)
		values.push_back(get_num(angs[node][i]));

	if (! values.empty()) {
		sort(values.begin(), values.end(), compar);
		
		for (size_t i = 0; i < angs[node].size(); i++) 
			values[i] += i + 1;
		
		sort(values.begin(), values.end(), compar);
		return values[0];
	}
	return 0;
}

int main(int argc, char** argv) {
	ifstream fi("zvon.in");
	ofstream fo("zvon.out");

	int teste;
	int angajati;

	fi >> teste;
	for (int i = 0; i < teste; ++i) {
		fi >> angajati;
		if (angajati > 1) {
			int x, y;
			memset(angs, 0, sizeof(angs));
			for (int j = 0; j < angajati - 1; ++j) {
				fi >> x >> y;
				angs[x - 1].push_back(y - 1);
			}
		
			 fo << get_num(0) << "\n" ;
		} else {
			fo << "0\n" << flush;
		}

	}
	return 0;
}