Pagini recente » Cod sursa (job #1124168) | Cod sursa (job #2584253) | Cod sursa (job #1383026) | Cod sursa (job #711404) | Cod sursa (job #442796)
Cod sursa(job #442796)
#include<stdio.h>
#define input "stramosi.in"
#define output "stramosi.out"
int n,m,a[20][250001];
bool v[20];
void open()
{
freopen(input,"r",stdin);
freopen(output,"w",stdout);
}
void read()
{
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
scanf("%d",&a[0][i]);
}
int solve(int p, int q)
{
int s=p,i=31;
while(i--)
{
if (q&(1<<i))
s=a[i][s];
}
return s;
}
void ask_me(int m)
{
int p,q;
while(m--)
{
scanf("%d%d",&p,&q);
printf("%d\n",solve(p,q));
}
}
void build()
{
for (int i=1;1<<i<=n;i++)
for (int j=1;j<=n;j++)
a[i][j]=a[i-1][a[i-1][j]];
}
int main()
{
open();
read();
build();
ask_me(m);
return 0;
}