Cod sursa(job #790033)

Utilizator andrei.sfrentSfrent Andrei andrei.sfrent Data 20 septembrie 2012 01:37:19
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,S[250002],p,q,u,_[33][250002];
main(){
r(in,r);r(out,w);
s("%d%dn",&N,&M);
f s("%d",S+i);
f _[0][i]=S[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;}