Pagini recente » Cod sursa (job #1321560) | Cod sursa (job #1936852) | Cod sursa (job #240183) | Cod sursa (job #1539074) | Cod sursa (job #1979849)
#include <iostream>
#include <fstream>
using namespace std;
ifstream si("stramosi.in");
ofstream so("stramosi.out");
int sol[20][250005];
int main()
{
int n,q;
si>>n>>q;
for(int i=1;i<=n;++i)
{
si>>sol[0][i];
}
for(int j=1;j<=18;++j)
{
for(int i=1;i<=n;++i)
{
sol[j][i]=sol[j-1][sol[j-1][i]];
}
}
int a,b;
for(int i=1;i<=q;++i)
{
si>>a>>b;
b=min(b,n+2);
for(int j=0;j<=18;++j)
{
if(b&(1<<j))
{
a=sol[j][a];
b-=1<<j;
}
}
so<<a<<'\n';
}
return 0;
}