Pagini recente » Cod sursa (job #2393441) | Cod sursa (job #1072341) | Cod sursa (job #57473) | Cod sursa (job #1526738) | Cod sursa (job #227821)
Cod sursa(job #227821)
#include<stdio.h>
#define nmax 1<<15
int t[17][nmax];
int main()
{
FILE *f=fopen("stramosi.in","r"),*g=fopen("stramosi.out","w");
int n,m;
fscanf(f,"%d%d",&n,&m);
for(int i=1;i<=n;++i)
fscanf(f,"%d",&t[0][i]);
for (int i=1;(1<<i) <= n;++i)
for (int j=1;j<=n;++j)
t[i][j] = t[i-1][t[i-1][j]];
for (int i=1;i<=m;++i)
{
int a,b;
fscanf(f,"%d%d",&a,&b);
for (int i=0;(1<<i) <= b;++i)
if ((1<<i)&b) a = t[i][a];
fprintf(g,"%d\n",a);
}
return 0;
}