Pagini recente » Cod sursa (job #1978418) | Cod sursa (job #448975) | Rating Andrisan Raul Darian (andrisanraul) | Istoria paginii runda/concurs3ore | Cod sursa (job #1684880)
#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;
}