Pagini recente » Cod sursa (job #459065) | Cod sursa (job #1827981) | Cod sursa (job #159373) | Cod sursa (job #2887413) | Cod sursa (job #3237272)
#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=1;i>j;j=j<<1,k++)
{
stramosi[i][k]=stramosi[stramosi[i][k-1]][k-1];
}
}
while(m--)
{
fin>>q>>nr;
k=0;
j=0;
for(i=20;i>=0;i--)
{
if(nr>=1<<i)
{
q=stramosi[q][i];
nr-=1<<i;
}
if(nr==0) //daca nu exista un urmas, q devine 0
break;
}
fout<<q<<'\n';
}
return 0;
}