Pagini recente » Cod sursa (job #1182354) | Cod sursa (job #1100884) | Cod sursa (job #2587684) | Cod sursa (job #2762932) | Cod sursa (job #255374)
Cod sursa(job #255374)
#include <stdio.h>
#define N 250250
int str[18][N],n,m;
void Config()
{
for (int j=1; j<18; j++)
{
for (int i=1; i<=n; i++)
if (str[j-1][i]!=0)
str[j][i]=str[j-1][str[j-1][i]];
}
}
void Calcul(int x,int y)
{
int j;
for (j=0; y; j++,y/=2)
{
if (y&1)
x=str[j][x];
}
printf("%d\n",x);
}
void Solve()
{
scanf("%d%d",&n,&m);
int st,ord;
for (int i=1; i<=n; i++)
scanf("%d",&str[0][i]);
Config();
for (int i=1; i<=m; i++)
{
scanf("%d%d",&st,&ord);
Calcul(st,ord);
}
}
int main()
{
freopen("stramosi.in","r",stdin);
freopen("stramosi.out","w",stdout);
Solve();
}