Pagini recente » Cod sursa (job #3336867) | Cod sursa (job #112111) | Cod sursa (job #3312043)
#include <bits/stdc++.h>
using namespace std;
ifstream f("stramosi.in");
ofstream g("stramosi.out");
const int nmax=250005;
int n,q,logg=18;
int dp[nmax][35];
int findkth(int x, int k)
{
for (int i=logg; i>=0; i-- )
{
if ( k&(1<<i) )
{
k-=(1<<i);
x=dp[x][i];
}
}
return x;
}
int main()
{
f >> n >> q;
for (int i=1; i<=n; i++ )
{
int x; f >> x;
dp[i][0]=x;
}
for (int j=1; j<=logg; j++ )
for (int i=1; i<=n; i++ )
dp[i][j]=dp[dp[i][j-1]][j-1];
while ( q-- )
{
int x,k; f >> x >> k;
g << findkth(x,k) << '\n';
}
return 0;
}