Pagini recente » Cod sursa (job #953905) | Cod sursa (job #1847457) | Cod sursa (job #2609012) | infoarena_runda_3 | Cod sursa (job #3274121)
#include <fstream>
using namespace std;
ifstream in("stramosi.in");
ofstream out("stramosi.out");
int n,q,dp[250005][20],x,k;
int main()
{
in>>n>>q;
for(int i=1;i<=n;i++)
in>>dp[i][0];
for(int i=1;(1<<i)<=n;i++)
for(int j=1;j<=n;j++)
dp[j][i]=dp[dp[j][i-1]][i-1];
/*
for(int i=1;(1<<i)<=n;i++)
{
for(int j=1;j<=n;j++)
out<<dp[j][i]<<' ';
out<<'\n';
}
*/
for(int i=1;i<=q;i++)
{
in>>x>>k;
for(int j=20;j>=0;j--)
{
if((1<<j)<=k)
{
k-=(1<<j);
x=dp[x][j];
}
}
out<<x<<'\n';
}
}