Davencode

Untitled

Jul 5th, 2021 (edited)
27
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.00 KB | None | 0 0
  1. ALGO_IT(A,i,j,x)
  2. STI=STJ=STY=STRET=STX=LAST=NIL
  3. CI=I; CJ=J;
  4. while(CJ-CI >= 0 || STJ != NIL)do
  5. if(CJ-CI >=0)then
  6. if(CJ-CI>=1)then
  7. y=RAND()%2
  8. if(x=1)then
  9. STY,STI,STX=PUSH(Y,CI,X);
  10. CI=(CI+CJ)/2 + 1
  11. X=Y
  12. else
  13. STY,STJ,STX=PUSH(Y,CJ,X);
  14. else
  15. RET=A[CI]
  16. LAST=CJ
  17. CI=CJ+1
  18. else
  19. TOP(STY,STJ,STI,STX);
  20. if(x=1)then
  21. ret=val
  22. if(ret%2=0)then
  23. CJ=(CI+CJ)/2
  24. X=1-Y
  25. else
  26. POP(STY,STJ,STI,STX);
  27. LAST=CJ
  28. CI=CJ+1
  29. else
  30. ret=val
  31. if(ret%2=1)then
  32. CI=(CI+CJ)/2 + 1
  33. X=1-Y
  34. else
  35. POP(STY,STJ,STI,STX);
  36. LAST=CJ
  37. CI=CJ+1
  38. STRET=PUSH(STRET,RET)
  39. if(Last!=(CI+CJ)/2)then
  40. top(STRET)
  41. if(ret%2=0)then
  42. pop(STRET)
  43. ret=ret+val
  44. push(STRET,RET)
  45. POP(STY,STJ,STI,STX); //USCITA
  46. LAST=CJ
  47. CI=CJ+1
  48. else
  49. top(STRET)
  50. if(ret%2=1)then
  51. pop(STRET)
  52. ret=ret+val
  53. push(STRET,RET)
  54. POP(STY,STJ,STI,STX); //USCITA
  55. LAST=CJ
  56. CI=CJ+1
  57. else
  58. POP(STY,STJ,STI,STX); //USCITA
  59. LAST=CJ
  60. CI=CJ+1
  61. return ret
Add Comment
Please, Sign In to add comment