Pagini recente » Cod sursa (job #2490384) | Cod sursa (job #580351) | Cod sursa (job #2585180) | Cod sursa (job #2761576) | Cod sursa (job #1368094)
//#include <fstream>
#include <cstdio>
#define NMAX 250005
using namespace std;
//ifstream fin("stramosi.in");
//ofstream fout("stramosi.out");
int t[21][NMAX];
int main()
{
freopen("stramosi.in", "r", stdin);
freopen("stramosi.out", "w", stdout);
int n, m, q, p, rez;
//fin >> n >> m;
scanf("%d %d", &n, &m);
for (int i = 1; i <= n; ++i)
scanf("%d", &t[0][i]);
//fin >> t[i][0];
for (int j = 1; (1 << j) <= n; ++j)
for (int i = 1; i <= n; ++i)
t[j][i] = t[ j-1 ][t[j-1][i]];
for (; m ; --m)
{
scanf("%d %d", &q, &p);
//fin >> q >> p;
rez = q;
for (int i = 0; (1 << i) <= p; ++i)
{
if (p & (1 << i)) rez = t[i][rez];
if (!rez) break;
}
printf("%d\n", rez);
//fout << rez << '\n';
}
return 0;
}