Pagini recente » Cod sursa (job #1914217) | Cod sursa (job #1380798) | Cod sursa (job #1996303) | Cod sursa (job #2197747) | Cod sursa (job #2603391)
#include <bits/stdc++.h>
#define NM 250005
using namespace std;
int n, Q, x, c, p, t[NM][18];
void build()
{
for(int i=1; i<=17; i++)
{
for(int nod=1; nod<=n; nod++)
t[nod][i] = t[t[nod][i-1]][i-1];
}
}
FILE* fin;
FILE* fout;
int main()
{
fin = fopen("stramosi.in", "r");
fout = fopen("stramosi.out", "w");
fscanf(fin, "%d%d", &n, &Q);
for(int i=1; i<=n; i++)
fscanf(fin, "%d", &t[i][0]);
build();
while(Q--)
{
fscanf(fin, "%d%d", &x, &c);
if(c > n)
fprintf(fout, "0\n");
else
{
p = 0;
while(c)
{
if(c&1)
x = t[x][p];
c>>=1;
++p;
}
fprintf(fout, "%d\n", x);
}
}
return 0;
}