Pagini recente » Cod sursa (job #2901171) | Cod sursa (job #48329) | Cod sursa (job #2866839) | Cod sursa (job #2431267) | Cod sursa (job #3237273)
#include <iostream>
#include <fstream>
#include <vector>
#define VMAX 250004
using namespace std;
ifstream fin ("stramosi.in");
ofstream fout ("stramosi.out");
int stramosi[VMAX][30];
int main()
{
ios_base::sync_with_stdio(false);
int n,m,i,j,k,q,nr;
fin>>n>>m;
for(i=1;i<=n;i++)
{
fin>>j;
stramosi[i][0]=j;
for(j=1,k=0;i>j;j*=2,k++)
{
stramosi[i][k+1]=stramosi[stramosi[i][k]][k];
}
}
while(m--)
{
fin>>q>>nr;
k=0;
while(nr)
{
while(nr&1==0)
{
k++;
nr=nr>>1;
}
q=stramosi[q][k];
if(q==0)
{
fout<<"0\n";
break;
}
nr--;
}
if(nr==0)
fout<<q<<'\n';
}
return 0;
}