Pagini recente » Cod sursa (job #1853423) | Cod sursa (job #2983515) | Cod sursa (job #2636357) | Cod sursa (job #2417634) | Cod sursa (job #2977219)
#include <fstream>
#include <algorithm>
#include <vector>
using namespace std;
ifstream cin("stramosi.in");
ofstream cout("stramosi.out");
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;
}