Pagini recente » Cod sursa (job #734263) | Cod sursa (job #1041305) | Cod sursa (job #1598577) | Cod sursa (job #745764) | Cod sursa (job #1248546)
//#include <iostream>
#include <stdio.h>
#define nmax 250001
using namespace std;
FILE *f=fopen("stramosi.in","r"),*g=fopen("stramosi.out","w");
long a[18][nmax];
long n,m;
int main()
{
long i,j,x,y,p,r,nr,x1,y1;
fscanf(f,"%ld %ld",&n,&m);
for(i=1;i<=n;i++)
{
fscanf(f,"%ld",&x);
a[1][i]=x;
}
for(i=2;i<18;i++)
{
for(j=1;j<=n;j++)
a[i][j]=a[i-1][a[i-1][j]];
}
for(i=1;i<=m;i++)
{
fscanf(f,"%ld %ld",&x,&y);
while(y>0)
{nr=1;
p=1;
while(p*2<=y)
{
p=p*2;
nr++;
}
y=y-p;
x=a[nr][x];
}
fprintf(g,"%ld\n",x);
}
fclose(f);
fclose(g);
return 0;
}