Pagini recente » Cod sursa (job #560325) | Cod sursa (job #1161604) | Cod sursa (job #2852702) | Cod sursa (job #2911823) | Cod sursa (job #2812311)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("stramosi.in");
ofstream fout("stramosi.out");
const int LOG=18;
const int MAX=250005;
int n,m,q,p,v[LOG][MAX],lg[MAX];
int main()
{
fin >> n >> m;
lg[1]=0;
for(int i=2;i<=n;i++)
lg[i]=lg[i>>1]+1;
for(int i=1;i<=n;i++)
fin >> v[0][i];
for(int i=1;(1<<i)<=n;i++)
for(int j=1;j<=n;j++)
v[i][j]=v[i-1][v[i-1][j]];
for(;m;--m)
{
fin >> q >> p;
while(p)
{
q=v[lg[p]][q];
p-=(1<<lg[p]);
}
fout << q << '\n';
}
return 0;
}