Pagini recente » Cod sursa (job #2820133) | Cod sursa (job #1338944) | Cod sursa (job #275640) | Cod sursa (job #614546) | Cod sursa (job #369966)
Cod sursa(job #369966)
#include <stdio.h>
int n, m, v[20][250010];
int main()
{
freopen("stramosi.in","r",stdin);
freopen("stramosi.out","w",stdout);
scanf("%d %d",&n,&m);
int i, k, j, cn=n;
for (i=1; i<=n; i++) scanf("%d",&v[0][i]);
for (k=0; cn; k++) cn/=2;
for (i=1; i<=k; i++)
for (j=1; j<=n; j++)
if (v[i-1][j])
v[i][j]=v[i-1][v[i-1][j]];
int p, q;
while (m--)
{
scanf("%d %d",&q,&p);
j=0;
while (q && p)
{
if (p%2)
q=v[j][q];
j++;
p/=2;
}
printf("%d\n",q);
}
}