Pagini recente » Cod sursa (job #2272426) | Cod sursa (job #3271068) | Cod sursa (job #1993811) | Cod sursa (job #1300242) | Cod sursa (job #1537947)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("stramosi.in");
ofstream fout ("stramosi.out");
int n,m,f[19][250005];
int query (int p,int q)
{
for(int i=0; (1<<i)<=p; ++i)
if( (1<<i) & p ) q= f[i][q];
return q;
}
int main()
{
fin>>n>>m;
for(int i=1; i<=n; i++)
{
int j;
fin>>j;
f[0][i]=j;
}
for(int i=1; (1<<i)<=n; i++)
{
for(int j=1; j<=n; j++)
{
f[i][j]=f[i-1][f[i-1][j]];
}
}
for(int i=1; i<=m; i++)
{
int x,y;
fin>>x>>y;
fout<<query(y,x)<<'\n';
}
return 0;
}