Pagini recente » Cod sursa (job #2809710) | Cod sursa (job #2540809) | Cod sursa (job #78395) | Cod sursa (job #2755989) | Cod sursa (job #3289335)
#include <bits/stdc++.h>
using namespace std;
ifstream f("stramosi.in");
ofstream g("stramosi.out");
int n,q,dp[250200][22],p,lung;
int main()
{
f>>n>>q;
for(int i=1; i<=n; i++)
f>>dp[i][0];
for(int j=2; j<=n; j++)
{
for(int i=1; i<=20; i++)
if(dp[j][i-1])
{
int p=j, l=i;
dp[p][l]=dp[dp[p][l-1]][l-1];
}
}
for(int i=1; i<=q; i++)
{
f>>p>>lung;
while(lung)
{
int l=log2(lung);
p=dp[p][l], lung-=(1<<l);
}
g<<p<<'\n';
}
return 0;
}