Pagini recente » Cod sursa (job #3351413) | Istoria paginii utilizator/[email protected] | Cod sursa (job #3306519) | Cod sursa (job #3316771) | Cod sursa (job #3324524)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("stramosi.in");
ofstream fout("stramosi.out");
int n,m,tt[250001];
int mat[30][250001],loga[300000];
void citire()
{
fin>>n>>m;
for(int i=1;i<=n;i++)
fin>>mat[0][i];
}
void matr()
{
for(int i=1;(1<<i)<=n;i++)
{
for(int j=1;j<=n;j++)
{
mat[i][j]=mat[i-1][mat[i-1][j]];
}
}
}
void logo()
{
for(int i=2;i<=260000;i++)
loga[i]=loga[i/2]+1;
}
void solve()
{
for(int i=1;i<=m;i++)
{ int p,q;
fin>>q>>p;
while(p)
{
int l=loga[p];
int z=(1<<l);
q=mat[l][q];
p-=z;
}
fout<<q;fout<<endl;
}
}
int main()
{
citire();
matr();
solve();
return 0;
}