Cod sursa(job #2095749)

Utilizator mari2001Maria Ionescu mari2001 Data 28 decembrie 2017 11:08:30
Problema Stramosi Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.46 kb
#include<cstdio>
int t[20][250005];
int main(){
freopen("stramosi.in","r",stdin);
freopen("stramosi.out","w",stdout);
int n,m,i,q,p,cnt,j;
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)
scanf("%d",&t[0][i]);
for(i=1;(1<<i)<n;i++)
for(j=1;j<=n;j++)
t[i][j]=t[i-1][t[i-1][j]];
for(i=1;i<=m;i++){
scanf("%d%d",&q,&p);
j=1,cnt=0;
while(j<=p)
j=j*2,cnt++;
cnt--;
j=j/2;
while(p){
if (p>=j){
q=t[cnt][q];
p=p-j;}
j=j/2;
cnt--;}
printf("%d\n",q);}
return 0;}