fork(1) download
  1. #include<stdio.h>
  2. int main()
  3. {
  4. long q,s,x,y,i,j,c,p;
  5. int r=2,b=1,a;
  6. char C[2];
  7. scanf("%ld",&q);
  8. while(q--)
  9. {
  10. scanf("%s",C);
  11. if(C[1]==105)
  12. {
  13. a=r;
  14. r=b;
  15. b=a;
  16. continue;
  17. }
  18. else
  19. {
  20. scanf("%ld%ld",&x,&y);
  21. s=1,i=1;
  22. while(s<=x)
  23. {
  24. s=2*s;
  25. ++i;
  26. }
  27. --i;
  28. j=1,s=1;
  29. while(s<=y)
  30. {
  31. s=2*s;
  32. ++j;
  33. }
  34. --j;
  35. c=1,p=i;
  36. while(x!=y)
  37. {
  38. if(i>j)
  39. {
  40. x=x/2,--i,++c;
  41. }
  42. else if(i==j)
  43. {
  44. x=x/2,y=y/2;
  45. --i,--j,c+=2;
  46. }
  47. else
  48. {
  49. y=y/2,--j,++c;
  50. }
  51. }
  52.  
  53.  
  54. if(C[1]==98)
  55. {
  56. if(b==2)
  57. {
  58. if(p%2==0)
  59. printf("%ld\n",c-c/2);
  60. else
  61. printf("%ld\n",c/2);
  62. }
  63. else
  64. {
  65. if(p%2==0)
  66. printf("%ld\n",c/2);
  67. else
  68. printf("%ld\n",c-c/2);
  69. }
  70. }
  71. else
  72. {
  73. if(r==2)
  74. {
  75. if(p%2==0)
  76. printf("%ld\n",c-c/2);
  77. else
  78. printf("%ld\n",c/2);
  79. }
  80. else
  81. {
  82. if(p%2==0)
  83. printf("%ld\n",c/2);
  84. else
  85. printf("%ld\n",c-c/2);
  86. }
  87. }
  88.  
  89.  
  90. }
  91. }
  92. return 0;
  93. }
Success #stdin #stdout 0s 3300KB
stdin
5
Qb 4 5
Qr 4 5
Qi
Qb 4 5
Qr 4 5
stdout
2