Pagini recente » Cod sursa (job #2931524) | Cod sursa (job #244279) | Cod sursa (job #2764033) | Cod sursa (job #10601) | Cod sursa (job #241152)
Cod sursa(job #241152)
#include<stdio.h>
FILE *f=fopen("stramosi.in","rt");
long A[20][250 001];
long n,m;
void date();
void solve();
int main(){
date();
solve();
return 0;
}
void date(){
long log,x;
fscanf(f,"%ld %ld",&n,&m);
for(int i=1;i<=n;i++) fscanf(f,"%u",&A[0][i]);
log=0;
x=n;while(x){x/=2;log++;}
for(i=1;i<=log;i++)
for(int j=1;j<=n;j++)
A[i][j]=A[i-1][A[i-1][j]];
}
void solve(){
FILE *g=fopen("stramosi.out","wt");
long p,q,niv;
for(int i=1;i<=m;i++){
fscanf(f,"%ld %ld",&q,&p);
niv=0;long x;
while(p){
if(p%2)x=A[niv][q];
p/=2;niv++;}
fprintf(g,"%ld\n",x);
}
}