Pagini recente » Cod sursa (job #2888251) | Cod sursa (job #2656651) | Cod sursa (job #61707) | Cod sursa (job #2339000) | Cod sursa (job #370383)
Cod sursa(job #370383)
#include<fstream>
#define FIN "stramosi.in"
#define FOUT "stramosi.out"
#define NMAX 250003
#define SMAX 21
using namespace std;
int cn,i,j,p,q,s[SMAX][NMAX],m,n,k;
int main()
{freopen(FIN,"r",stdin);
freopen(FOUT,"w",stdout);
scanf("%d %d",&n,&m);
for(i=1;i<=n;i++) {scanf("%d",&s[0][i]);}
cn=n;
for(k=0;cn;k++) cn>>=1;
for(i=1;i<=k;i++)
for(j=1;j<=n;j++)
if(s[i-1][j]) s[i][j]=s[i-1][s[i-1][j]];
while (m--)
{
scanf("%d %d",&q,&p);
j=0;
while(p && q)
{if(p%2)
q=s[j][q];
j++;
p=p/2;
}
printf("%d\n",q);
}
return 0;}