Pagini recente » Cod sursa (job #494948) | Cod sursa (job #1718273) | Cod sursa (job #3281887) | Cod sursa (job #1920070) | Cod sursa (job #984491)
Cod sursa(job #984491)
#include <cstdio>
using namespace std;
const int MAX_N = 250100;
int d[19][MAX_N];
int n,m;
int main() {
freopen("stramosi.in","r",stdin);
freopen("stramosi.out","w",stdout);
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
scanf("%d",&d[0][i]);
for(int j=2;j<=18;j++) {
for(int i=1;i<=n;i++)
d[j][i]=d[j-1][d[j-1][i]];
}
for(int i=1;i<=m;i++) {
int p,q;
scanf("%d%d",&q,&p);
for(int j=18;j>=0;j--)
if(p&(1<<j)) q=d[j][q];
printf("%d\n",q);
}
return 0;
}