Pagini recente » Cod sursa (job #694121) | Cod sursa (job #1943885) | Cod sursa (job #2519945) | Cod sursa (job #456671) | Cod sursa (job #3133731)
#include <fstream>
#include <cmath>
using namespace std;
ifstream in("stramosi.in");
ofstream out("stramosi.out");
int n,m,mat[51][250001],l[250001],i,j,k;
int main()
{
in>>n>>m;
in>>mat[0][1];
for(i=2;i<=n;i++)
{
in >> mat[0][i];
l[i]= l[i / 2] + 1;
}
for(k=1;(1<<k)<=n;k++)
for(i=1;i<=n;i++)
mat[k][i]=mat[k - 1][mat[k - 1][i]];
while(m>0)
{
in >> i >> j;
while(j>0)
{
i=mat[l[j]][i];
j=j-(1 << l[j]);
}
out << i << "\n";
m--;
}
return 0;
}