Pagini recente » Cod sursa (job #2964930) | Cod sursa (job #2455224) | Cod sursa (job #1558517) | Cod sursa (job #2042876) | Cod sursa (job #2231138)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("stramosi.in");
ofstream fout("stramosi.out");
int n,m,i,j,nr,logn;
int main() {
fin>>n>>m;
nr=n/2;
while(nr!=0)
{ logn++; nr/=2; }
int S[logn+3][n+5];
for(i=1;i<=n;i++)
fin>>S[0][i];
for(i=1;i<=logn;i++)
for(j=1;j<=n;j++)
S[i][j]=S[i-1][S[i-1][j]];
while(m--)
{
fin>>i>>j;
for(int pas=logn; pas>=0; pas--)
if((1<<pas)<=j)
{
i=S[pas][i];
j-=(1<<pas);
}
fout<<i<<"\n";
}
}