Cod sursa(job #337358)
Utilizator | Data | 3 august 2009 14:53:50 | |
---|---|---|---|
Problema | Stramosi | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.59 kb |
#include<stdio.h>
#define NMAX 250001
int n,m,i,j,p,q,r;
int str[18][NMAX];
int main() {
freopen("stramosi.in","r",stdin);
freopen("stramosi.out","w",stdout);
scanf("%d %d",&n,&m);
for(i=1;i<=n;i++) scanf("%d",&str[0][i]);
for(j=1;(1<<j)<=n;j++)
for(i=1;i<=n;i++)
str[j][i]=str[j-1][str[j-1][i]];
while(m--) {
scanf("%d %d",&q,&p);
r=q;
while(p&&r) {
for(i=0;(1<<i)<=p;i++);
r=str[--i][r];
p-=1<<i;
}
printf("%d\n",r);
}
return 0;
}