Pagini recente » Cod sursa (job #1052010) | Cod sursa (job #1890700) | Cod sursa (job #895096) | Cod sursa (job #2923722) | Cod sursa (job #2878790)
#include <fstream>
#include <cmath>
using namespace std;
ifstream fin("stramosi.in");
ofstream fout("stramosi.out");
int n, i, j, m, p, q, anc[250001][21];
int main()
{
fin >> n >> m;
for (i = 1; i <= n; i++)
fin >> anc[i][0];
int sz = int(log2(n));
for (j = 1; j <= sz; j++)
for (i = 1; i <= n; i++)
anc[i][j] = anc[anc[i][j-1]][j-1];
for (j = 1; j <= m; j++)
{
fin >> q >> p;
int str = q;
while (p > 0)
{
str = anc[str][int(log2(p))];
p -= (1 << int(log2(p)));
}
fout << str << "\n";
}
return 0;
}