Pagini recente » Cod sursa (job #282569) | Cod sursa (job #2673053) | Cod sursa (job #128430) | Cod sursa (job #3257600) | Cod sursa (job #1256853)
#include <stdio.h>
using namespace std;
int mat[19][250069];
int n,m;
int main()
{
FILE *in,*out;
in=fopen("stramos.in","r");
out=fopen("stramos.out","w");
fscanf(in,"%d%d",&n,&m);
for(int i=1;i<=n;i++)
fscanf(in,"%d",&mat[0][i]);
for(int i=1;i<=n;i++)
for(int put=1;put<=17;put++)
mat[put][i]=mat[put-1][mat[put-1][i]];
int a, b,niv;
for(int i=1;i<=m;i++){
fscanf(in,"%d%d",&a,&b);
niv=0;
while(b){
if(b&1) a=mat[niv][a];
niv++;
b=b>>1;
}
fprintf(out,"%d\n",a);
}
fclose(in);
fclose(out);
return 0;
}