Pagini recente » Cod sursa (job #586104) | Cod sursa (job #975259) | Cod sursa (job #2870625) | Cod sursa (job #2376122) | Cod sursa (job #2603378)
#include <bits/stdc++.h>
#define NM 250005
using namespace std;
int n, Q, t[NM][int(log2(NM))+5];
void build()
{
for(int i=1; i<=log2(n); 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--)
{
int x, c;
fscanf(fin, "%d%d", &x, &c);
while(c)
{
int p = log2(c);
x = t[x][p];
c-=(1<<p);
}
fprintf(fout, "%d\n", x);
}
return 0;
}