Pagini recente » Cod sursa (job #1274860) | Cod sursa (job #1882073) | Cod sursa (job #197214) | Cod sursa (job #2049824) | Cod sursa (job #241598)
Cod sursa(job #241598)
#include<stdio.h>
#include<string.h>
int a[17][250000];
int ct=0;
int main ()
{
freopen("stramosi.in","r",stdin);
freopen("stramosi.out","w",stdout);
int n,i,k,m,j,z,x,y,p,nr;
scanf("%d%d",&n,&m);
// int a[17][n];
for(i=1;i<=n;i++)
scanf("%d",&a[0][i]);
a[0][0]=0;
for(k=1;k<=17;k++)
{z=0;
for(i=1;i<=n;i++)
{
a[k][i]=a[k-1][a[k-1][i]];
if(a[k][i]!=0)
z=1;
// printf("%d ",a[k][i]);
}
// printf("\n");
if(z==0)
break;
}
// for(i=1;i<=n;i++)
// printf("%d ",i);
// printf("\n");
/* for(i=1;i<=k;i++)
{ for(j=1;j<=n;j++)
printf("%d ",a[i][j]);
printf("\n");
}*/
for(p=1;p<=m;p++)
{ct=0;
scanf("%d%d",&x,&y);
while(y)
{
if(y%2==1)
{
x=a[ct][x];
}
ct++;
y/=2;
}
printf("%d\n",x);
}
return 0;
}