Cod sursa(job #790034)

Utilizator andrei.sfrentSfrent Andrei andrei.sfrent Data 20 septembrie 2012 01:42:34
Problema Stramosi Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.42 kb
#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;}