Pagini recente » Cod sursa (job #1828976) | Cod sursa (job #357465) | Cod sursa (job #654552) | Cod sursa (job #2942289) | Cod sursa (job #192933)
Cod sursa(job #192933)
#include<stdio.h>
#include<vector>
#define nmax 250024
#define nmare 300024
#define baza 20
using namespace std;
int a[24][nmax];
int main()
{
freopen("stramosi.in","r",stdin);
freopen("stramosi.out","w",stdout);
int N,M;
scanf("%d%d",&N,&M);
int i,aux,aux1,aux2,k,j;
for(i=1; i<=N; ++i)
scanf("%d",&a[0][i]);
for(j=1; j<=baza; ++j){
for(i=1; i<=N; ++i){
a[j][i]=a[ j-1 ][ a[j-1][i] ];
//printf("%d ",a[j][i]);
}
//printf("\n");
}
int nr;
for(i=1; i<=M; ++i){
scanf("%d%d",&aux1,&aux2);
//aux1 - fiul
//aux2 - nr stramos
//nr=a[0][aux1];
nr=aux1;
for(j=0; aux2!=0; ++j,aux2/=2)
if( aux2%2 )
nr=a[j][nr];
printf("%d\n",nr);
}
return 0;
}