Pagini recente » Cod sursa (job #105031) | Cod sursa (job #741133) | Cod sursa (job #1309946) | Cod sursa (job #638524) | Cod sursa (job #1294045)
#include <stdio.h>
#include <iostream>
#include <fstream>
using namespace std;
int mat[20][250001];
int n,m;
int main()
{
FILE *out;
//FILE *in;
//in=fopen("stramos.in","r");
out=fopen("stramosi.out","w");
//fscanf(in,"%d%d",&n,&m);
ifstream in("stramosi.in");
in>>n>>m;
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;
}