Pagini recente » Cod sursa (job #2375110) | Cod sursa (job #2727939) | Cod sursa (job #1426805) | Cod sursa (job #1679726) | Cod sursa (job #1049871)
#include <iostream>
#include <fstream>
using namespace std;
int m[52][250005],nn,nq,i,p,q,j;
int stramos(int mem,int ord)
{
for (int i=0;(1<<i)<=ord;i++)
if ((ord&(1<<i))!=0)
mem=m[i][mem];
return mem;
}
int main(void)
{
FILE * f;
f=fopen("stramosi.in","r");
ofstream g("stramosi.out");
fscanf(f,"%d%d",&nn,&nq);
for (i=1;i<=nn;i++)
fscanf(f,"%d",&m[0][i]);
for (j=1;j<=50;j++)
for (i=1;i<=nn;i++)
m[j][i]=m[j-1][m[j-1][i]];
for (i=1;i<=nq;i++)
{
fscanf(f,"%d%d",&q,&p);
g<<stramos(q,p)<<'\n';
}
return 0;
}