Pagini recente » Cod sursa (job #1846175) | Cod sursa (job #291507) | Cod sursa (job #185955) | Cod sursa (job #3170864) | Cod sursa (job #1045920)
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
int m[250005][20],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[mem][i];
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[i][0]);
for (j=1;j<=log(double(nn));j++)
for (i=1;i<=nn;i++)
m[i][j]=m[m[i][j-1]][j-1];
for (i=1;i<=nq;i++)
{
fscanf(f,"%d%d",&q,&p);
g<<stramos(q,p)<<'\n';
}
return 0;
}