Cod sursa(job #1684880)

Utilizator DragosDADDorneanu Dragos - Andrei DragosDAD Data 11 aprilie 2016 12:39:15
Problema Stramosi Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <iostream>
#include <fstream>

using namespace std;

unsigned int findAncestor(unsigned int *v, unsigned int n, unsigned int current_member, unsigned int rank, unsigned int count)
{
	if (count == rank) {
		return current_member;
	}
	if (current_member != 0) {
		return findAncestor(v, n, v[current_member], rank, count + 1);
	}
	return 0;
}

int main()
{
	ifstream fin("stramosi.in");
	ofstream fout("stramosi.out");
	unsigned int n, m, i, p, q, dim = 0;
	fin >> n >> m;
	unsigned int *v = new unsigned int[n + 1];
	for (i = 1; i <= n; i++) {
		fin >> v[i];
	}
	while (m)
	{
		fin >> q >> p;
		fout << findAncestor(v, n, v[q], p, 1) << '\n';
		m--;
	}
	fin.close();
	fout.close();
	return 0;
}