Pagini recente » Cod sursa (job #2380989) | Cod sursa (job #1806361) | Cod sursa (job #311650) | Cod sursa (job #3263065) | Cod sursa (job #1787885)
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
ifstream fin("stramosi.in");
ofstream fout("stramosi.out");
#define nmax 250000
int rmq[20][nmax];
int n,q,i,j,x,nr,k;
inline int compute(int x,int nr)
{
while(nr)
{
int k = log2(nr);
x = rmq[k][x];
nr = nr-(1<<k);
}
return x;
}
int main()
{
fin>>n>>q;
for(i=1; i<=n; ++i)
fin>>rmq[0][i];
k = log2(n);
for(j=1; j<=k; ++j)
for(i=1; i<=n; ++i)
rmq[j][i]=rmq[j-1][rmq[j-1][i]];
while(q--)
{
fin>>x>>nr;
fout<<compute(x,nr)<<'\n';
}
}