Pagini recente » Cod sursa (job #762712) | Cod sursa (job #255239) | Cod sursa (job #2852241) | Cod sursa (job #891872) | Cod sursa (job #1712252)
#include <iostream>
#include<fstream>
using namespace std;
int D[18][250001],i,j,k,l,n,m,q,p,a;
int log2(int a10)
{
int j10=0;
while((1<<j10)<a10)++j10;
if((1<<j10)>a10)--j10;
return j10;
}
int main()
{
ifstream f("stramosi.in");
f>>n>>m;++n;for(i=1;i<n;++i)f>>D[0][i];
k=log2(n)+1;
for(j=1;j<k;++j)
{
for(i=1;i<n;++i)
{
D[j][i]=D[j-1][D[j-1][i]];
}
}
--n;
ofstream g("stramosi.out");
for(l=0;l<m;++l)
{
f>>q>>p;
while(p>0)
{
a=log2(p);
p-=(1<<a);
q=D[a][q];
}
g<<q<<'\n';
}
f.close();
g.close();
return 0;
}