Pagini recente » Cod sursa (job #1009005) | Cod sursa (job #969567) | Cod sursa (job #2899167) | Cod sursa (job #2108907) | Cod sursa (job #2569974)
#include <bits/stdc++.h>
using namespace std;
ifstream in("stramosi.in");
ofstream out("stramosi.out");
const int NMAX=250005;
const int LMAX=20;
int n,m,s[LMAX][NMAX];
int rasp(int a,int b){
int node=a;
for(int i=0;(1<<i)<=b;i++)
if((1<<i)&b)
node=s[i][node];
return node;
}
int main()
{
in>>n>>m;
for(int i=1;i<=n;i++)
in>>s[0][i];
for(int k=1;k<=LMAX;k++)
for(int i=1;i<=n;i++)
s[k][i]=s[k-1][s[k-1][i]];
for(int i=1,a,b;i<=m;i++){
in>>a>>b;
out<<rasp(a,b)<<'\n';
}
return 0;
}