Pagini recente » Cod sursa (job #2777934) | Cod sursa (job #2369228) | Cod sursa (job #2776654) | Cod sursa (job #2672872) | Cod sursa (job #790034)
Cod sursa(job #790034)
#include <cstdio>
#define s scanf
#define o(_,b) for(_=1;_<=b;_++)
#define f o(i, N)
#define r(x,y) freopen("stramosi."#x,#y,std##x)
int l(int x){
return x==1?0:1+l(x>>1);}
int i,j,N,M,I[1<<18],p,q,u,_[33][1<<18];
main(){
r(in,r),r(out,w);
s("%d%d",&N,&M);
f s("%d",I+i);
f _[0][i]=I[i];
o(j,l(M))f _[j][i]=_[j-1][_[j-1][i]];
while(M--){
s("%d%d",&q,&p);
while(u=(p&(p-1)))q=_[l(p-u)][q],p=u;
printf("%d\n",_[l(p)][q]);}
return 0;}