Pagini recente » Cod sursa (job #1240219) | Cod sursa (job #1908337) | Cod sursa (job #1689352) | Cod sursa (job #2286162) | Cod sursa (job #1257312)
#include <stdio.h>
#include <iostream>
#include <fstream>
using namespace std;
int mat[20][250001];
int n,m;
int main()
{
FILE *in,*out;
in=fopen("stramos.in","r");
out=fopen("stramos.out","w");
fscanf(in,"%d%d",&n,&m);
//ifstream in("stramos.in");
for(int i=1;i<=n;i++)
//in>>mat[0][i];
fscanf(in,"%d",&mat[0][i]);
for(int i=1;i<=n;i++)
for(int j=1;j<=17;j++)
mat[j][i]=mat[j-1][mat[j-1][i]];
int a, b, niv;
for(int i=1;i<=m;i++){
fscanf(in,"%d %d",&a,&b);
//in>>a>>b;
niv=0;
while(b){
if(b&1) a=mat[niv][a];
niv++;
b=b>>1;
}
fprintf(out,"%d\n",a);
}
return 0;
}