Pagini recente » Cod sursa (job #1729016) | Cod sursa (job #358337) | Cod sursa (job #722436) | Cod sursa (job #511061) | Cod sursa (job #2284370)
#include <fstream>
using namespace std;
ifstream in("stramosi.in");
ofstream out("stramosi.out");
const int N=250001;
const int LOG=17;
int n,m,log2[N],s[N][LOG];
int main()
{
in>>n>>m;
for(int i=2;i<=2*(n+1);i++)
log2[i]=1+log2[i/2];
for(int i=1;i<=n;i++)
{
in>>s[0][i];
}
for(int i=1;i<=log2[n];i++)
for(int j=1;j<=n;j++)
s[i][j]=s[i-1][s[i-1][j]];
int q,p,poz,k;
for(int i=1;i<=m;i++)
{
in>>q>>p;
poz=17;
while(p>0 && poz>0)
{
k=1<<poz;
if(k<=p)
{
q=s[poz][q];
p=p-k;
}
poz--;
}
if(p==1)
out<<s[0][q]<<'\n';
else
out<<q<<'\n';
}
return 0;
}