Cod sursa(job #508137)
| Utilizator | Data | 7 decembrie 2010 17:03:30 | |
|---|---|---|---|
| Problema | Stramosi | Scor | 30 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.44 kb |
#include<stdio.h>
FILE *f=fopen("stramosi.in","r");
FILE *g=fopen("stramosi.out","w");
int a[19][262144],M,N,x,q,p,t;
int main(){
fscanf(f,"%d%d",&N,&M);
for(int i=1;i<=N;i++)
fscanf(f,"%d",&x),a[0][i]=x;
for(int i=1;i<=19;i++)
for(int j=1;j<=N;j++)
a[i][j]=a[i-1][a[i-1][j]];
for(int i=1;i<=M;i++){
fscanf(f,"%d%d",&q,&p);
for(t=0;p!=0;t++,p/=2)
if(p%2)
q=a[t][q];
fprintf(g,"%d\n",q);
}
return 0;
}
