Advertisement
Guest User

Untitled

a guest
Mar 27th, 2017
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.24 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #include <algorithm>
  3.  
  4. using namespace std;
  5.  
  6. int main(){
  7.  
  8. long long int n;
  9. int q;
  10. cin>>n>>q;
  11. long long int d=-1ll,n2ll=n+1ll;
  12. while(n2ll%2==0){
  13. n2ll=n2ll/2;
  14. d++;
  15. }
  16.  
  17. for(int p=0;p<q;p++){
  18.  
  19. long long int s=0;
  20. cin>>s;
  21. long long int sp=s,mar=0,mar2ll=1ll<<(long long int)(d),mar3=0;
  22. long long int ds=0;
  23. while(mar3==0){
  24. if ((long long int)(s)%(long long int)(mar2ll)==0){
  25. ds=mar;
  26. mar3=1ll;
  27. }
  28. else {
  29. mar2ll=mar2ll/2ll;
  30. mar++;
  31. }
  32. }
  33. string cha;
  34. cin>>cha;
  35. for (int q=0; q<cha.size();q++){
  36. if (cha[q]=='R'){
  37. if((long long int)(s)%2ll==0){
  38. s+=1ll<<(long long int)(d-ds-1ll);
  39. ds++;
  40. }
  41. }
  42. if (cha[q]=='L'){
  43. if((long long int)(s)%2ll==0){
  44. s-=1ll<<(long long int)(d-ds-1ll);
  45. ds++;
  46. }
  47. }
  48. if (cha[q]=='U'){
  49. if((long long int)(s)!=1ll<<(long long int)(d)){
  50. long long int x=s;
  51.  
  52. x=(long long int)(x-(1ll<<(long long int)(d-ds)))%(1ll<<(long long int)(d-ds+2ll));
  53. if (x!=0){
  54. s-=1ll<<(long long int)(d-ds);
  55. }
  56. if (x==0){
  57. s+=1ll<<(long long int)(d-ds);
  58. }
  59. ds--;
  60. }
  61. }
  62. //cout << s << endl;
  63. }
  64. cout<<s<<"\n";
  65.  
  66. }
  67.  
  68.  
  69. return 0;
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement