Pagini recente » Cod sursa (job #2107003) | Rating test111111111111 (test111111111111) | Cod sursa (job #623908) | Cod sursa (job #1004366) | Cod sursa (job #479525)
Cod sursa(job #479525)
#include <cstdio>
#define file_in "stramosi.in"
#define file_out "stramosi.out"
int n,m;
int s[19][250993];
void citire()
{
freopen(file_in,"r",stdin);
freopen(file_out,"w",stdout);
scanf("%d %d", &n, &m);
for (int i=1;i<=n;++i)
scanf("%d", &s[0][i]);
}
void prep()
{
for (int i=1;i<=18;++i)
for (int j=1;j<=n;++j)
s[i][j]=s[i-1][s[i-1][j]];
}
void solve()
{
int p,q,i;
prep();
while(m--)
{
scanf("%d %d", &q, &p);
while(p)
{
i=0;
while(i<=(p>>1)) i++;
i--;
p-=(1<<i);
q=s[i][q];
}
printf("%d\n", q);
}
}
int main()
{
citire();
solve();
fclose(stdin);
fclose(stdout);
return 0;
}