Pagini recente » Cod sursa (job #664242) | Cod sursa (job #1266295) | Cod sursa (job #126901) | Cod sursa (job #2029023) | Cod sursa (job #3198113)
#include <fstream>
using namespace std;
ifstream cin("stramosi.in");
ofstream cout("stramosi.out");
#define MAXN 1<<5
#define MAXM 1<<18
int sp[MAXN+1][MAXM+1];
int main()
{
int n, m;
cin>>n>>m;
int i;
for(i=1; i<=n; i++)
cin>>sp[0][i];
int j;
for(i=1; (1<<i)<=n; i++)
for(j=1; j<=n; j++)
sp[i][j]=sp[i-1][sp[i-1][j]];
int q, p;
for(i=1; i<=m; i++)
{
cin>>q>>p;
j=0;
while(p)
{
if(p&1)
q=sp[j][q];
j++;
p>>=1;
}
cout<<q<<'\n';
}
}