Pagini recente » Cod sursa (job #2886618) | Cod sursa (job #2584891) | Cod sursa (job #786504) | Cod sursa (job #2823448) | Cod sursa (job #141503)
Cod sursa(job #141503)
//a[i][j]=2^j stramosi al lui i O(n*lg(n))
#include <stdio.h>
#define NM 250009
long a[NM][19];
long n, m;
int main()
{
freopen("stramosi.in","r",stdin);
freopen("stramosi.out","w",stdout);
scanf("%ld %ld", &n, &m);
for(long i=1;i<=n;i++)
scanf("%ld", &a[i][0]);
for(long i=1;i<=n;i++)
for(long j=1;j<18;j++)
a[i][j]=a[a[i][j-1]][j-1];
for(long j=1;j<=m;j++)
{
long q, p;
scanf("%ld %ld", &q, &p);
long i=18;
while (p)
{
while((1<<i)>p) i--;
p-=(1<<i);
q=a[q][i];
}
printf("%ld\n", q);
}
return(0);
}