Pagini recente » Cod sursa (job #485521) | Cod sursa (job #1321997) | Cod sursa (job #543443) | Cod sursa (job #2713943) | Cod sursa (job #1253290)
#include <iostream>
#include <cstdio>
#include <fstream>
using namespace std;
#define maxN 250005
#define maxLog 25
#define maxLLog 19
int n,m,i,j,q,p,tmp;
int dp[maxLog][maxN];
int main()
{
/*freopen("stramosi.in","r",stdin);
freopen("stramosi.out","w",stdout);*/
ifstream in("stramosi.in");
ofstream out("stramosi.out");
//scanf("%ld %ld\n",&n,&m);
//for(i=1;i<=n;i++) scanf("%ld",&dp[i][0]);
in >> n >> m;
for(i=1;i<=n;i++) in >> dp[0][i];
for(j=1;j<=18;j++)
for(i=1;i<=n;i++)
dp[j][i] = dp[j-1][dp[j-1][i]];
for(;m;m--){
//scanf("%ld %ld",&q,&p);
in >> q >> p;
for(i=0;p;p/=2,i++)
if(p%2==1)
q = dp[i][q];
//printf("%ld\n",q);
out << q << '\n';
}
return 0;
}