Pagini recente » Cod sursa (job #1736579) | Cod sursa (job #2723464) | Cod sursa (job #1441636) | Cod sursa (job #25573) | Cod sursa (job #1049868)
#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[i][j-1]];
for (i=1;i<=nq;i++)
{
fscanf(f,"%d%d",&q,&p);
g<<stramos(q,p)<<'\n';
}
return 0;
}