Pagini recente » Cod sursa (job #670422) | Cod sursa (job #3188677) | Cod sursa (job #2545462) | Cod sursa (job #214303) | Cod sursa (job #2908405)
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
ifstream fin("stramosi.in");
ofstream fout("stramosi.out");
const int NMAX=250005;
const int NMAX1=20;
int t[NMAX1][NMAX];
int asc(int x,int p)
{
int kon=0;
while(p)
{
if(p%2!=0)
x=t[kon][x];
p=(p>>1);
kon++;
}
return x;
}
int main()
{
int n,m,i,j,elem,lung,x,p;
fin>>n>>m;
for(i=1;i<=n;i++)
{
fin>>elem;
t[0][i]=elem;
}
lung=(int (log2(n)));
for(i=1;i<=lung;i++)
for(j=1;j<=n;j++)
t[i][j]=t[i-1][t[i-1][j]];
for(i=1;i<=m;i++)
{
fin>>x>>p;
fout<<asc(x,p)<<"\n";
}
return 0;
}