Pagini recente » Cod sursa (job #2497596) | Cod sursa (job #2375694) | Cod sursa (job #2423152) | Cod sursa (job #2461462) | Cod sursa (job #2977218)
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int n,m,a,b;
int up[250001][19];
int stramos(int x,int d)
{
for(int i=18;i>=0;i--)
{
if(d&(1<<i))
x=up[x][i];
}
return x;
}
int main()
{
ios_base::sync_with_stdio(false);
cin>>n>>m;
for(int i=1;i<=n;i++)
cin>>up[i][0];
for(int j=1;j<=18;j++)
{
for(int i=1;i<=n;i++)
up[i][j]=up[up[i][j-1]][j-1];
}
while(m--)
{
cin>>a>>b;
cout<<stramos(a,b)<<'\n';
}
return 0;
}