Pagini recente » Cod sursa (job #1002707) | Cod sursa (job #1873095) | Cod sursa (job #1688107) | Cod sursa (job #1434759) | Cod sursa (job #3208023)
#include <fstream>
using namespace std;
ifstream cin("stramosi.in");
ofstream cout("stramosi.out");
int n, q;
int rmq[19][250001];
int main()
{
cin>>n>>q;
for(int i = 1;i<=n;i++)
{
int x;
cin>>x;
rmq[0][i] = x;
}
for(int e = 1;(1<<e)<=n;e++)
{
for(int i = 1;i<=n;i++)
{
rmq[e][i] = rmq[e-1][rmq[e-1][i]];
}
}
while(q--)
{
int node, k;
cin>>node>>k;
for(int i = 0; i<=19;i++)
if((1<<i) & k) node = rmq[i][node];
cout<<node<<"\n";
}
}