Cod sursa(job #1294706)

Utilizator vgabi94Vaduva Gabriel vgabi94 Data 18 decembrie 2014 00:29:03
Problema Stramosi Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <fstream>
#include <unordered_map>
using namespace std;

int findAncestor(unordered_map<int, int>* umap, int q, int p)
{
	if (umap[q].find(p) == umap[q].end()) {
		umap[q][p] = findAncestor(umap, umap[q][1], p - 1);
	}
	return umap[q][p];
}

int main()
{
	ifstream in("stramosi.in");
	ofstream out("stramosi.out");
	int N, M, Q, P;
	in >> N >> M;
	unordered_map<int, int> * ancestor = new unordered_map<int, int>[N + 1];

	for (int i = 1; i <= N; i++) {
		int x; in >> x;
		ancestor[i][1] = x;
	}

	for (int i = 0; i < M; i++) {
		in >> Q >> P;
		out << findAncestor(ancestor, Q, P) << '\n';
	}

	delete[] ancestor;
	in.close();
	out.close();
}