Pagini recente » Cod sursa (job #159946) | Cod sursa (job #170845) | Cod sursa (job #1710247) | Cod sursa (job #2201484) | Cod sursa (job #33664)
Cod sursa(job #33664)
#include<stdio.h>
int a[250001],n,m,q,b[250001];
int main()
{freopen("stramosi.in","r",stdin);
freopen("stramosi.out","w",stdout);
scanf("%d %d",&n,&m);
for(q=1;q<=n;q++)
scanf("%d",&a[q]);
for(q=1;q<=n;q++)
b[q]=a[a[a[a[a[a[a[a[a[a[q]]]]]]]]]];
for(;m;m--)
{scanf("%d %d",&q,&n);
for(;n/100&&q;n=n-100,q=b[b[b[b[b[b[b[b[b[b[q]]]]]]]]]]);
if(n>=80) {n=n-80;q=b[b[b[b[b[b[b[b[q]]]]]]]];}
else if(n>=90) {n=n-90;q=b[b[b[b[b[b[b[b[b[q]]]]]]]]];}
else if(n>=70) {n=n-70;q=b[b[b[b[b[b[b[q]]]]]]];}
else if(n>=60) {n=n-60;q=b[b[b[b[b[b[q]]]]]];}
else if(n>=50) {n=n-50;q=b[b[b[b[b[q]]]]];}
else if(n>=40) {n=n-40;q=b[b[b[b[q]]]];}
else if(n>=30) {n=n-30;q=b[b[b[q]]];}
else if(n>=20) {n=n-20;q=b[b[q]];}
else if(n>=10) {n=n-10;q=b[q];}
for(;n&&q;n--,q=a[q]);
printf("%d\n",q);}
fclose(stdout);
return 0;}