Pagini recente » Cod sursa (job #604939) | Cod sursa (job #935226) | Cod sursa (job #1768121) | Cod sursa (job #2672357) | Cod sursa (job #1377277)
#include <fstream>
using namespace std;
int main()
{
ifstream in("stramosi.in");
ofstream out("stramosi.out");
int N, M;
int Q, P;
int** Ancestors;
in >> N >> M;
Ancestors = new int*[N + 1];
for (int x, i = 1; i <= N; ++i)
{
Ancestors[i] = new int[N + 1];
in >> x;
Ancestors[i][1] = x;
}
for (int i = 1; i <= N; ++i)
for (int j = 2; j <= N; ++j)
Ancestors[i][j] = Ancestors[i][j - 1] == 0 ? 0 : Ancestors[Ancestors[i][j - 1]][1];
for (int i = 1; i <= M; ++i)
{
in >> Q >> P;
out << Ancestors[Q][P] << "\n";
}
for (int i = 1; i <= N; ++i)
delete[] Ancestors[i];
delete[] Ancestors;
in.close();
out.close();
return 0;
}