fork(3) download
  1. // bitnic sort for 6 elements
  2. #include <stdio.h>
  3. #include <time.h>
  4. #define testIterates 50000
  5. int countOfCompare=0;
  6. int countOfMove=0;
  7.  
  8. #define lswap2(p,q) {w=d[p];d[p]=d[q];d[q]=w;countOfMove +=3;}
  9. #define lswap3(p,q,r) {w=d[p];d[p]=d[q];d[q]=d[r];d[r]=w;countOfMove+=4;}
  10. #define lswap4(p,q,r,s) {w=d[p];d[p]=d[q];d[q]=d[r];d[r]=d[s];d[s]=w;countOfMove+=5;}
  11. #define lswap5(p,q,r,s,t) {w=d[p];d[p]=d[q];d[q]=d[r];d[r]=d[s];d[s]=d[t];d[t]=w;countOfMove+=6;}
  12. #define lswap6(p,q,r,s,t,u) {w=d[p];d[p]=d[q];d[q]=d[r];d[r]=d[s];d[s]=d[t];d[t]=d[u];d[u]=w;countOfMove+=7;}
  13.  
  14. int sort6l(unsigned int *d){
  15. unsigned int w;
  16. if(d[0]<=d[1]) if(d[2]<=d[3]) if(d[4]<=d[5]) if(d[0]<=d[2]) if(d[3]<=d[5]) if(d[1]<=d[3]) if(d[2]<=d[4]) if(d[1]<=d[2]) if(d[3]<=d[4]) {countOfCompare+=9; return 0;}
  17. else {countOfCompare+=9; lswap2(3,4);}
  18. else if(d[1]<=d[4]) if(d[3]<=d[4]) {countOfCompare+=10; lswap2(1,2);}
  19. else {countOfCompare+=10; lswap2(1,2);lswap2(3,4);}
  20. else {countOfCompare+=9; lswap4(1,2,4,3);}
  21. else if(d[0]<=d[4]) if(d[1]<=d[4]) {countOfCompare+=9; lswap3(2,4,3);}
  22. else if(d[1]<=d[2]) {countOfCompare+=10; lswap4(1,4,3,2);}
  23. else {countOfCompare+=10; lswap3(1,4,3);}
  24. else if(d[1]<=d[2]) {countOfCompare+=9; lswap5(0,4,3,2,1);}
  25. else {countOfCompare+=9; lswap4(0,4,3,1);}
  26. else if(d[2]<=d[4]) if(d[1]<=d[5]) if(d[1]<=d[4]) {countOfCompare+=9; lswap3(1,2,3);}
  27. else if(d[3]<=d[4]) {countOfCompare+=10; lswap4(1,2,3,4);}
  28. else {countOfCompare+=10; lswap3(1,2,4);}
  29. else if(d[3]<=d[4]) {countOfCompare+=9; lswap5(1,2,3,4,5);}
  30. else {countOfCompare+=9; lswap4(1,2,4,5);}
  31. else if(d[0]<=d[4]) if(d[1]<=d[5]) {countOfCompare+=9; lswap2(1,4);}
  32. else {countOfCompare+=9; lswap3(1,4,5);}
  33. else if(d[1]<=d[5]) {countOfCompare+=9; lswap3(0,4,1);}
  34. else {countOfCompare+=9; lswap4(0,4,5,1);}
  35. else if(d[2]<=d[5]) if(d[1]<=d[5]) if(d[1]<=d[2]) if(d[1]<=d[4]) if(d[2]<=d[4]) {countOfCompare+=10; lswap3(3,4,5);}
  36. else {countOfCompare+=10; lswap4(2,4,5,3);}
  37. else if(d[0]<=d[4]) {countOfCompare+=10; lswap5(1,4,5,3,2);}
  38. else {countOfCompare+=10; lswap6(0,4,5,3,2,1);}
  39. else if(d[2]<=d[4]) if(d[1]<=d[4]) {countOfCompare+=10; lswap2(1,2);lswap3(3,4,5);}
  40. else {countOfCompare+=10; lswap5(1,2,4,5,3);}
  41. else if(d[0]<=d[4]) {countOfCompare+=10; lswap4(1,4,5,3);}
  42. else {countOfCompare+=10; lswap5(0,4,5,3,1);}
  43. else if(d[1]<=d[3]) if(d[2]<=d[4]) {countOfCompare+=9; lswap3(1,2,4);lswap2(3,5);}
  44. else if(d[0]<=d[4]) {countOfCompare+=10; lswap2(1,4);lswap2(3,5);}
  45. else {countOfCompare+=10; lswap3(0,4,1);lswap2(3,5);}
  46. else if(d[2]<=d[4]) {countOfCompare+=9; lswap5(1,2,4,3,5);}
  47. else if(d[0]<=d[4]) {countOfCompare+=10; lswap4(1,4,3,5);}
  48. else {countOfCompare+=10; lswap5(0,4,3,5,1);}
  49. else if(d[1]<=d[2]) if(d[0]<=d[4]) if(d[1]<=d[4]) {countOfCompare+=9; lswap2(2,4);lswap2(3,5);}
  50. else if(d[1]<=d[5]) {countOfCompare+=10; lswap3(1,4,2);lswap2(3,5);}
  51. else {countOfCompare+=10; lswap5(1,4,2,5,3);}
  52. else if(d[1]<=d[5]) {countOfCompare+=9; lswap4(0,4,2,1);lswap2(3,5);}
  53. else if(d[0]<=d[5]) {countOfCompare+=10; lswap6(0,4,2,5,3,1);}
  54. else {countOfCompare+=10; lswap3(0,4,2);lswap3(1,5,3);}
  55. else if(d[1]<=d[3]) if(d[0]<=d[4]) {countOfCompare+=9; lswap2(1,4);lswap3(2,5,3);}
  56. else if(d[0]<=d[5]) {countOfCompare+=10; lswap3(0,4,1);lswap3(2,5,3);}
  57. else {countOfCompare+=10; lswap6(0,4,1,5,3,2);}
  58. else if(d[0]<=d[4]) {countOfCompare+=9; lswap5(1,4,3,2,5);}
  59. else if(d[0]<=d[5]) {countOfCompare+=10; lswap6(0,4,3,2,5,1);}
  60. else {countOfCompare+=10; lswap4(0,4,3,2);lswap2(1,5);}
  61. else if(d[3]<=d[5]) if(d[0]<=d[3]) if(d[0]<=d[4]) if(d[3]<=d[4]) if(d[1]<=d[4]) if(d[1]<=d[3]) {countOfCompare+=10; lswap3(0,2,1);}
  62. else {countOfCompare+=10; lswap4(0,2,3,1);}
  63. else if(d[1]<=d[5]) {countOfCompare+=10; lswap5(0,2,3,4,1);}
  64. else {countOfCompare+=10; lswap6(0,2,3,4,5,1);}
  65. else if(d[1]<=d[3]) if(d[1]<=d[4]) {countOfCompare+=10; lswap3(0,2,1);lswap2(3,4);}
  66. else {countOfCompare+=10; lswap5(0,2,4,3,1);}
  67. else if(d[1]<=d[5]) {countOfCompare+=10; lswap4(0,2,4,1);}
  68. else {countOfCompare+=10; lswap5(0,2,4,5,1);}
  69. else if(d[2]<=d[4]) if(d[1]<=d[3]) {countOfCompare+=9; lswap2(0,2);lswap3(1,4,3);}
  70. else if(d[1]<=d[5]) {countOfCompare+=10; lswap2(0,2);lswap2(1,4);}
  71. else {countOfCompare+=10; lswap2(0,2);lswap3(1,4,5);}
  72. else if(d[1]<=d[3]) {countOfCompare+=9; lswap5(0,4,3,1,2);}
  73. else if(d[1]<=d[5]) {countOfCompare+=10; lswap4(0,4,1,2);}
  74. else {countOfCompare+=10; lswap5(0,4,5,1,2);}
  75. else if(d[3]<=d[4]) if(d[0]<=d[4]) if(d[1]<=d[4]) {countOfCompare+=9; lswap2(0,2);lswap2(1,3);}
  76. else if(d[1]<=d[5]) {countOfCompare+=10; lswap2(0,2);lswap3(1,3,4);}
  77. else {countOfCompare+=10; lswap2(0,2);lswap4(1,3,4,5);}
  78. else if(d[1]<=d[5]) {countOfCompare+=9; lswap5(0,2,4,1,3);}
  79. else if(d[0]<=d[5]) {countOfCompare+=10; lswap6(0,2,4,5,1,3);}
  80. else {countOfCompare+=10; lswap3(0,2,4);lswap3(1,3,5);}
  81. else if(d[2]<=d[4]) if(d[1]<=d[5]) {countOfCompare+=9; lswap3(0,2,3);lswap2(1,4);}
  82. else if(d[0]<=d[5]) {countOfCompare+=10; lswap3(0,2,3);lswap3(1,4,5);}
  83. else {countOfCompare+=10; lswap6(0,2,3,5,1,4);}
  84. else if(d[1]<=d[5]) {countOfCompare+=9; lswap5(0,4,1,2,3);}
  85. else if(d[0]<=d[5]) {countOfCompare+=10; lswap6(0,4,5,1,2,3);}
  86. else {countOfCompare+=10; lswap2(0,4);lswap4(1,2,3,5);}
  87. else if(d[1]<=d[3]) if(d[2]<=d[4]) if(d[0]<=d[4]) if(d[1]<=d[4]) {countOfCompare+=9; lswap3(0,2,1);lswap3(3,4,5);}
  88. else if(d[1]<=d[5]) {countOfCompare+=10; lswap6(0,2,4,5,3,1);}
  89. else {countOfCompare+=10; lswap4(0,2,4,1);lswap2(3,5);}
  90. else if(d[1]<=d[5]) {countOfCompare+=9; lswap2(0,2);lswap4(1,4,5,3);}
  91. else if(d[0]<=d[5]) {countOfCompare+=10; lswap2(0,2);lswap2(1,4);lswap2(3,5);}
  92. else {countOfCompare+=10; lswap4(0,2,5,3);lswap2(1,4);}
  93. else if(d[0]<=d[5]) if(d[1]<=d[5]) {countOfCompare+=9; lswap6(0,4,5,3,1,2);}
  94. else {countOfCompare+=9; lswap4(0,4,1,2);lswap2(3,5);}
  95. else if(d[2]<=d[5]) {countOfCompare+=9; lswap6(0,4,1,2,5,3);}
  96. else {countOfCompare+=9; lswap5(0,4,1,5,3);}
  97. else if(d[2]<=d[4]) if(d[0]<=d[5]) if(d[0]<=d[4]) {countOfCompare+=9; lswap6(0,2,4,3,5,1);}
  98. else {countOfCompare+=9; lswap2(0,2);lswap4(1,4,3,5);}
  99. else if(d[0]<=d[3]) {countOfCompare+=9; lswap6(0,2,5,1,4,3);}
  100. else {countOfCompare+=9; lswap5(0,2,5,1,4);}
  101. else if(d[0]<=d[3]) if(d[2]<=d[5]) if(d[0]<=d[5]) {countOfCompare+=10; lswap6(0,4,3,5,1,2);}
  102. else {countOfCompare+=10; lswap3(0,4,3);lswap3(1,2,5);}
  103. else {countOfCompare+=9; lswap3(0,4,3);lswap2(1,5);}
  104. else if(d[2]<=d[5]) {countOfCompare+=9; lswap2(0,4);lswap3(1,2,5);}
  105. else {countOfCompare+=9; lswap2(0,4);lswap2(1,5);}
  106. else if(d[0]<=d[2]) if(d[1]<=d[4]) if(d[1]<=d[2]) if(d[1]<=d[5]) if(d[2]<=d[5]) if(d[3]<=d[5]) {countOfCompare+=9; lswap2(4,5);}
  107. else if(d[3]<=d[4]) {countOfCompare+=10; lswap3(3,5,4);}
  108. else {countOfCompare+=10; lswap2(3,5);}
  109. else if(d[2]<=d[4]) if(d[3]<=d[4]) {countOfCompare+=10; lswap4(2,5,4,3);}
  110. else {countOfCompare+=10; lswap3(2,5,3);}
  111. else {countOfCompare+=9; lswap4(2,5,3,4);}
  112. else if(d[0]<=d[5]) if(d[2]<=d[4]) if(d[3]<=d[4]) {countOfCompare+=10; lswap5(1,5,4,3,2);}
  113. else {countOfCompare+=10; lswap4(1,5,3,2);}
  114. else {countOfCompare+=9; lswap5(1,5,3,4,2);}
  115. else if(d[2]<=d[4]) if(d[3]<=d[4]) {countOfCompare+=10; lswap6(0,5,4,3,2,1);}
  116. else {countOfCompare+=10; lswap5(0,5,3,2,1);}
  117. else {countOfCompare+=9; lswap6(0,5,3,4,2,1);}
  118. else if(d[2]<=d[5]) if(d[1]<=d[5]) if(d[3]<=d[5]) if(d[1]<=d[3]) {countOfCompare+=10; lswap2(1,2);lswap2(4,5);}
  119. else {countOfCompare+=10; lswap3(1,2,3);lswap2(4,5);}
  120. else if(d[3]<=d[4]) {countOfCompare+=10; lswap2(1,2);lswap3(3,5,4);}
  121. else {countOfCompare+=10; lswap2(1,2);lswap2(3,5);}
  122. else if(d[1]<=d[3]) if(d[3]<=d[4]) {countOfCompare+=10; lswap5(1,2,5,4,3);}
  123. else {countOfCompare+=10; lswap4(1,2,5,3);}
  124. else if(d[3]<=d[5]) {countOfCompare+=10; lswap5(1,2,3,5,4);}
  125. else {countOfCompare+=10; lswap4(1,2,5,4);}
  126. else if(d[0]<=d[5]) if(d[1]<=d[3]) if(d[3]<=d[4]) {countOfCompare+=10; lswap4(1,5,4,3);}
  127. else {countOfCompare+=10; lswap3(1,5,3);}
  128. else {countOfCompare+=9; lswap3(1,5,4);}
  129. else if(d[1]<=d[3]) if(d[3]<=d[4]) {countOfCompare+=10; lswap5(0,5,4,3,1);}
  130. else {countOfCompare+=10; lswap4(0,5,3,1);}
  131. else {countOfCompare+=9; lswap4(0,5,4,1);}
  132. else if(d[1]<=d[3]) if(d[0]<=d[5]) if(d[2]<=d[4]) if(d[2]<=d[5]) {countOfCompare+=9; lswap5(1,2,5,3,4);}
  133. else {countOfCompare+=9; lswap4(1,5,3,4);}
  134. else if(d[1]<=d[2]) {countOfCompare+=9; lswap3(1,5,3);lswap2(2,4);}
  135. else {countOfCompare+=9; lswap5(1,5,3,2,4);}
  136. else if(d[0]<=d[4]) if(d[2]<=d[4]) {countOfCompare+=9; lswap5(0,5,3,4,1);}
  137. else if(d[1]<=d[2]) {countOfCompare+=10; lswap4(0,5,3,1);lswap2(2,4);}
  138. else {countOfCompare+=10; lswap6(0,5,3,2,4,1);}
  139. else if(d[1]<=d[2]) {countOfCompare+=9; lswap6(0,5,3,1,4,2);}
  140. else {countOfCompare+=9; lswap4(0,5,3,2);lswap2(1,4);}
  141. else if(d[0]<=d[5]) if(d[2]<=d[5]) if(d[3]<=d[5]) {countOfCompare+=9; lswap4(1,2,3,5);}
  142. else if(d[3]<=d[4]) {countOfCompare+=10; lswap3(1,2,5);}
  143. else {countOfCompare+=10; lswap3(1,2,5);lswap2(3,4);}
  144. else if(d[2]<=d[4]) if(d[3]<=d[4]) {countOfCompare+=10; lswap2(1,5);}
  145. else {countOfCompare+=10; lswap2(1,5);lswap2(3,4);}
  146. else {countOfCompare+=9; lswap2(1,5);lswap3(2,4,3);}
  147. else if(d[2]<=d[4]) if(d[3]<=d[4]) {countOfCompare+=9; lswap3(0,5,1);}
  148. else {countOfCompare+=9; lswap3(0,5,1);lswap2(3,4);}
  149. else if(d[0]<=d[4]) {countOfCompare+=9; lswap3(0,5,1);lswap3(2,4,3);}
  150. else {countOfCompare+=9; lswap6(0,5,1,4,3,2);}
  151. else if(d[1]<=d[4]) if(d[1]<=d[3]) if(d[0]<=d[5]) if(d[1]<=d[5]) if(d[3]<=d[5]) {countOfCompare+=9; lswap3(0,2,1);lswap2(4,5);}
  152. else if(d[3]<=d[4]) {countOfCompare+=10; lswap3(0,2,1);lswap3(3,5,4);}
  153. else {countOfCompare+=10; lswap3(0,2,1);lswap2(3,5);}
  154. else if(d[3]<=d[4]) {countOfCompare+=9; lswap6(0,2,5,4,3,1);}
  155. else {countOfCompare+=9; lswap5(0,2,5,3,1);}
  156. else if(d[2]<=d[5]) if(d[3]<=d[4]) {countOfCompare+=9; lswap2(0,2);lswap4(1,5,4,3);}
  157. else {countOfCompare+=9; lswap2(0,2);lswap3(1,5,3);}
  158. else if(d[3]<=d[4]) {countOfCompare+=9; lswap6(0,5,4,3,1,2);}
  159. else {countOfCompare+=9; lswap5(0,5,3,1,2);}
  160. else if(d[3]<=d[5]) if(d[0]<=d[3]) if(d[1]<=d[5]) {countOfCompare+=9; lswap4(0,2,3,1);lswap2(4,5);}
  161. else {countOfCompare+=9; lswap6(0,2,3,5,4,1);}
  162. else if(d[1]<=d[5]) {countOfCompare+=9; lswap2(0,2);lswap2(1,3);lswap2(4,5);}
  163. else if(d[0]<=d[5]) {countOfCompare+=10; lswap2(0,2);lswap4(1,3,5,4);}
  164. else {countOfCompare+=10; lswap6(0,2,5,4,1,3);}
  165. else if(d[0]<=d[3]) if(d[2]<=d[5]) if(d[0]<=d[5]) {countOfCompare+=10; lswap5(0,2,5,4,1);}
  166. else {countOfCompare+=10; lswap2(0,2);lswap3(1,5,4);}
  167. else {countOfCompare+=9; lswap5(0,5,4,1,2);}
  168. else if(d[2]<=d[5]) {countOfCompare+=9; lswap3(0,2,3);lswap3(1,5,4);}
  169. else {countOfCompare+=9; lswap6(0,5,4,1,2,3);}
  170. else if(d[0]<=d[4]) if(d[3]<=d[4]) if(d[0]<=d[3]) if(d[0]<=d[5]) if(d[3]<=d[5]) {countOfCompare+=10; lswap5(0,2,3,5,1);}
  171. else {countOfCompare+=10; lswap4(0,2,5,1);}
  172. else if(d[2]<=d[5]) {countOfCompare+=10; lswap2(0,2);lswap2(1,5);}
  173. else {countOfCompare+=10; lswap4(0,5,1,2);}
  174. else if(d[3]<=d[5]) if(d[0]<=d[5]) {countOfCompare+=10; lswap2(0,2);lswap3(1,3,5);}
  175. else {countOfCompare+=10; lswap5(0,2,5,1,3);}
  176. else if(d[2]<=d[5]) {countOfCompare+=10; lswap3(0,2,3);lswap2(1,5);}
  177. else {countOfCompare+=10; lswap5(0,5,1,2,3);}
  178. else if(d[1]<=d[3]) if(d[2]<=d[5]) if(d[0]<=d[5]) {countOfCompare+=10; lswap6(0,2,5,3,4,1);}
  179. else {countOfCompare+=10; lswap2(0,2);lswap4(1,5,3,4);}
  180. else {countOfCompare+=9; lswap6(0,5,3,4,1,2);}
  181. else if(d[2]<=d[5]) if(d[0]<=d[5]) {countOfCompare+=10; lswap4(0,2,5,1);lswap2(3,4);}
  182. else {countOfCompare+=10; lswap2(0,2);lswap2(1,5);lswap2(3,4);}
  183. else {countOfCompare+=9; lswap4(0,5,1,2);lswap2(3,4);}
  184. else if(d[0]<=d[3]) if(d[1]<=d[3]) if(d[2]<=d[4]) if(d[2]<=d[5]) {countOfCompare+=10; lswap6(0,2,4,1,5,3);}
  185. else {countOfCompare+=10; lswap3(0,5,3);lswap3(1,2,4);}
  186. else {countOfCompare+=9; lswap3(0,5,3);lswap2(1,4);}
  187. else if(d[2]<=d[4]) if(d[2]<=d[5]) {countOfCompare+=10; lswap4(0,2,4,3);lswap2(1,5);}
  188. else {countOfCompare+=10; lswap6(0,5,1,2,4,3);}
  189. else {countOfCompare+=9; lswap5(0,5,1,4,3);}
  190. else if(d[2]<=d[5]) if(d[3]<=d[5]) {countOfCompare+=9; lswap6(0,2,5,1,3,4);}
  191. else if(d[3]<=d[4]) {countOfCompare+=10; lswap4(0,2,3,4);lswap2(1,5);}
  192. else {countOfCompare+=10; lswap3(0,2,4);lswap2(1,5);}
  193. else if(d[2]<=d[4]) if(d[3]<=d[4]) {countOfCompare+=10; lswap6(0,5,1,2,3,4);}
  194. else {countOfCompare+=10; lswap5(0,5,1,2,4);}
  195. else {countOfCompare+=9; lswap4(0,5,1,4);}
  196. else if(d[4]<=d[5]) if(d[0]<=d[3]) if(d[2]<=d[5]) if(d[1]<=d[2]) if(d[1]<=d[3]) if(d[1]<=d[4]) if(d[2]<=d[4]) {countOfCompare+=9; lswap2(2,3);}
  197. else if(d[3]<=d[4]) {countOfCompare+=10; lswap3(2,3,4);}
  198. else {countOfCompare+=10; lswap2(2,4);}
  199. else if(d[0]<=d[4]) {countOfCompare+=9; lswap3(1,4,2);}
  200. else {countOfCompare+=9; lswap4(0,4,2,1);}
  201. else if(d[1]<=d[4]) if(d[2]<=d[4]) {countOfCompare+=9; lswap3(1,3,2);}
  202. else {countOfCompare+=9; lswap4(1,3,4,2);}
  203. else if(d[0]<=d[4]) if(d[3]<=d[4]) {countOfCompare+=10; lswap2(1,3);lswap2(2,4);}
  204. else {countOfCompare+=10; lswap4(1,4,2,3);}
  205. else {countOfCompare+=9; lswap5(0,4,2,3,1);}
  206. else if(d[1]<=d[5]) if(d[2]<=d[4]) if(d[1]<=d[4]) {countOfCompare+=9; lswap2(1,3);}
  207. else {countOfCompare+=9; lswap3(1,3,4);}
  208. else if(d[0]<=d[4]) if(d[3]<=d[4]) {countOfCompare+=10; lswap4(1,3,2,4);}
  209. else {countOfCompare+=10; lswap2(1,4);lswap2(2,3);}
  210. else {countOfCompare+=9; lswap3(0,4,1);lswap2(2,3);}
  211. else if(d[3]<=d[4]) if(d[2]<=d[4]) {countOfCompare+=9; lswap4(1,3,4,5);}
  212. else {countOfCompare+=9; lswap5(1,3,2,4,5);}
  213. else if(d[0]<=d[4]) {countOfCompare+=9; lswap3(1,4,5);lswap2(2,3);}
  214. else {countOfCompare+=9; lswap4(0,4,5,1);lswap2(2,3);}
  215. else if(d[3]<=d[5]) if(d[1]<=d[5]) if(d[1]<=d[3]) if(d[1]<=d[4]) if(d[3]<=d[4]) {countOfCompare+=10; lswap4(2,3,4,5);}
  216. else {countOfCompare+=10; lswap3(2,4,5);}
  217. else if(d[0]<=d[4]) {countOfCompare+=10; lswap4(1,4,5,2);}
  218. else {countOfCompare+=10; lswap5(0,4,5,2,1);}
  219. else if(d[3]<=d[4]) if(d[1]<=d[4]) {countOfCompare+=10; lswap5(1,3,4,5,2);}
  220. else {countOfCompare+=10; lswap2(1,3);lswap3(2,4,5);}
  221. else if(d[0]<=d[4]) {countOfCompare+=10; lswap5(1,4,5,2,3);}
  222. else {countOfCompare+=10; lswap6(0,4,5,2,3,1);}
  223. else if(d[1]<=d[2]) if(d[0]<=d[4]) if(d[3]<=d[4]) {countOfCompare+=10; lswap5(1,3,5,2,4);}
  224. else {countOfCompare+=10; lswap2(1,4);lswap3(2,3,5);}
  225. else {countOfCompare+=9; lswap3(0,4,1);lswap3(2,3,5);}
  226. else if(d[0]<=d[4]) if(d[3]<=d[4]) {countOfCompare+=10; lswap3(1,3,5);lswap2(2,4);}
  227. else {countOfCompare+=10; lswap5(1,4,2,3,5);}
  228. else {countOfCompare+=9; lswap6(0,4,2,3,5,1);}
  229. else if(d[1]<=d[3]) if(d[0]<=d[4]) if(d[1]<=d[4]) {countOfCompare+=9; lswap4(2,4,3,5);}
  230. else if(d[1]<=d[5]) {countOfCompare+=10; lswap5(1,4,3,5,2);}
  231. else {countOfCompare+=10; lswap3(1,4,3);lswap2(2,5);}
  232. else if(d[1]<=d[5]) {countOfCompare+=9; lswap6(0,4,3,5,2,1);}
  233. else if(d[0]<=d[5]) {countOfCompare+=10; lswap4(0,4,3,1);lswap2(2,5);}
  234. else {countOfCompare+=10; lswap6(0,4,3,1,5,2);}
  235. else if(d[1]<=d[2]) if(d[0]<=d[4]) {countOfCompare+=9; lswap2(1,4);lswap2(2,5);}
  236. else if(d[0]<=d[5]) {countOfCompare+=10; lswap3(0,4,1);lswap2(2,5);}
  237. else {countOfCompare+=10; lswap5(0,4,1,5,2);}
  238. else if(d[0]<=d[4]) {countOfCompare+=9; lswap4(1,4,2,5);}
  239. else if(d[0]<=d[5]) {countOfCompare+=10; lswap5(0,4,2,5,1);}
  240. else {countOfCompare+=10; lswap3(0,4,2);lswap2(1,5);}
  241. else if(d[2]<=d[5]) if(d[0]<=d[2]) if(d[0]<=d[4]) if(d[2]<=d[4]) if(d[1]<=d[4]) if(d[1]<=d[2]) {countOfCompare+=10; lswap4(0,3,2,1);}
  242. else {countOfCompare+=10; lswap3(0,3,1);}
  243. else if(d[1]<=d[5]) {countOfCompare+=10; lswap4(0,3,4,1);}
  244. else {countOfCompare+=10; lswap5(0,3,4,5,1);}
  245. else if(d[1]<=d[2]) if(d[1]<=d[4]) {countOfCompare+=10; lswap5(0,3,4,2,1);}
  246. else {countOfCompare+=10; lswap3(0,3,1);lswap2(2,4);}
  247. else if(d[1]<=d[5]) {countOfCompare+=10; lswap5(0,3,2,4,1);}
  248. else {countOfCompare+=10; lswap6(0,3,2,4,5,1);}
  249. else if(d[3]<=d[4]) if(d[1]<=d[5]) if(d[1]<=d[2]) {countOfCompare+=10; lswap5(0,3,1,4,2);}
  250. else {countOfCompare+=10; lswap3(0,3,2);lswap2(1,4);}
  251. else {countOfCompare+=9; lswap3(0,3,2);lswap3(1,4,5);}
  252. else if(d[1]<=d[5]) if(d[1]<=d[2]) {countOfCompare+=10; lswap3(0,4,2);lswap2(1,3);}
  253. else {countOfCompare+=10; lswap5(0,4,1,3,2);}
  254. else {countOfCompare+=9; lswap6(0,4,5,1,3,2);}
  255. else if(d[2]<=d[4]) if(d[0]<=d[4]) if(d[1]<=d[4]) {countOfCompare+=9; lswap4(0,3,1,2);}
  256. else if(d[1]<=d[5]) {countOfCompare+=10; lswap5(0,3,4,1,2);}
  257. else {countOfCompare+=10; lswap6(0,3,4,5,1,2);}
  258. else if(d[1]<=d[5]) {countOfCompare+=9; lswap2(0,3);lswap3(1,2,4);}
  259. else if(d[0]<=d[5]) {countOfCompare+=10; lswap2(0,3);lswap4(1,2,4,5);}
  260. else {countOfCompare+=10; lswap6(0,3,5,1,2,4);}
  261. else if(d[3]<=d[4]) if(d[1]<=d[5]) {countOfCompare+=9; lswap2(0,3);lswap2(1,4);}
  262. else if(d[0]<=d[5]) {countOfCompare+=10; lswap2(0,3);lswap3(1,4,5);}
  263. else {countOfCompare+=10; lswap5(0,3,5,1,4);}
  264. else if(d[1]<=d[5]) {countOfCompare+=9; lswap4(0,4,1,3);}
  265. else if(d[0]<=d[5]) {countOfCompare+=10; lswap5(0,4,5,1,3);}
  266. else {countOfCompare+=10; lswap2(0,4);lswap3(1,3,5);}
  267. else if(d[0]<=d[5]) if(d[0]<=d[4]) if(d[1]<=d[5]) if(d[1]<=d[4]) {countOfCompare+=9; lswap6(0,3,4,5,2,1);}
  268. else {countOfCompare+=9; lswap3(0,3,1);lswap3(2,4,5);}
  269. else if(d[1]<=d[2]) {countOfCompare+=9; lswap6(0,3,5,2,4,1);}
  270. else {countOfCompare+=9; lswap4(0,3,5,1);lswap2(2,4);}
  271. else if(d[3]<=d[4]) if(d[1]<=d[5]) {countOfCompare+=9; lswap6(0,3,1,4,5,2);}
  272. else if(d[1]<=d[2]) {countOfCompare+=10; lswap4(0,3,5,2);lswap2(1,4);}
  273. else {countOfCompare+=10; lswap6(0,3,5,1,4,2);}
  274. else if(d[1]<=d[5]) {countOfCompare+=9; lswap4(0,4,5,2);lswap2(1,3);}
  275. else if(d[1]<=d[2]) {countOfCompare+=10; lswap6(0,4,1,3,5,2);}
  276. else {countOfCompare+=10; lswap3(0,4,2);lswap3(1,3,5);}
  277. else if(d[0]<=d[2]) if(d[1]<=d[2]) if(d[3]<=d[5]) if(d[3]<=d[4]) {countOfCompare+=10; lswap2(0,3);lswap2(1,4);lswap2(2,5);}
  278. else {countOfCompare+=10; lswap4(0,4,1,3);lswap2(2,5);}
  279. else {countOfCompare+=9; lswap6(0,4,1,5,2,3);}
  280. else if(d[3]<=d[5]) if(d[3]<=d[4]) {countOfCompare+=10; lswap2(0,3);lswap4(1,4,2,5);}
  281. else {countOfCompare+=10; lswap6(0,4,2,5,1,3);}
  282. else {countOfCompare+=9; lswap4(0,4,2,3);lswap2(1,5);}
  283. else if(d[3]<=d[5]) if(d[3]<=d[4]) {countOfCompare+=9; lswap6(0,3,2,5,1,4);}
  284. else {countOfCompare+=9; lswap2(0,4);lswap4(1,3,2,5);}
  285. else {countOfCompare+=8; lswap2(0,4);lswap2(1,5);lswap2(2,3);}
  286. else if(d[2]<=d[4]) if(d[0]<=d[3]) if(d[3]<=d[5]) if(d[2]<=d[5]) if(d[1]<=d[5]) if(d[1]<=d[3]) {countOfCompare+=9; lswap2(2,3);lswap2(4,5);}
  287. else if(d[1]<=d[2]) {countOfCompare+=10; lswap3(1,3,2);lswap2(4,5);}
  288. else {countOfCompare+=10; lswap2(1,3);lswap2(4,5);}
  289. else if(d[1]<=d[4]) {countOfCompare+=9; lswap4(1,3,5,4);}
  290. else {countOfCompare+=9; lswap3(1,3,5);}
  291. else if(d[1]<=d[5]) if(d[1]<=d[3]) {countOfCompare+=9; lswap4(2,3,5,4);}
  292. else {countOfCompare+=9; lswap5(1,3,5,4,2);}
  293. else if(d[1]<=d[4]) if(d[1]<=d[2]) {countOfCompare+=10; lswap2(1,3);lswap3(2,5,4);}
  294. else {countOfCompare+=10; lswap5(1,3,2,5,4);}
  295. else {countOfCompare+=9; lswap4(1,3,2,5);}
  296. else if(d[0]<=d[5]) if(d[1]<=d[3]) if(d[1]<=d[5]) {countOfCompare+=9; lswap3(2,5,4);}
  297. else {countOfCompare+=9; lswap4(1,5,4,2);}
  298. else if(d[1]<=d[4]) if(d[1]<=d[2]) {countOfCompare+=10; lswap5(1,5,4,2,3);}
  299. else {countOfCompare+=10; lswap3(1,5,4);lswap2(2,3);}
  300. else {countOfCompare+=9; lswap2(1,5);lswap2(2,3);}
  301. else if(d[1]<=d[2]) if(d[1]<=d[3]) {countOfCompare+=9; lswap5(0,5,4,2,1);}
  302. else {countOfCompare+=9; lswap6(0,5,4,2,3,1);}
  303. else if(d[1]<=d[4]) {countOfCompare+=9; lswap4(0,5,4,1);lswap2(2,3);}
  304. else {countOfCompare+=9; lswap3(0,5,1);lswap2(2,3);}
  305. else if(d[0]<=d[2]) if(d[0]<=d[5]) if(d[2]<=d[5]) if(d[1]<=d[5]) if(d[1]<=d[2]) {countOfCompare+=10; lswap4(0,3,2,1);lswap2(4,5);}
  306. else {countOfCompare+=10; lswap3(0,3,1);lswap2(4,5);}
  307. else if(d[1]<=d[4]) {countOfCompare+=10; lswap5(0,3,5,4,1);}
  308. else {countOfCompare+=10; lswap4(0,3,5,1);}
  309. else if(d[1]<=d[2]) if(d[1]<=d[5]) {countOfCompare+=10; lswap6(0,3,5,4,2,1);}
  310. else {countOfCompare+=10; lswap3(0,3,1);lswap3(2,5,4);}
  311. else if(d[1]<=d[4]) {countOfCompare+=10; lswap6(0,3,2,5,4,1);}
  312. else {countOfCompare+=10; lswap5(0,3,2,5,1);}
  313. else if(d[3]<=d[5]) if(d[1]<=d[4]) if(d[1]<=d[2]) {countOfCompare+=10; lswap6(0,3,1,5,4,2);}
  314. else {countOfCompare+=10; lswap3(0,3,2);lswap3(1,5,4);}
  315. else {countOfCompare+=9; lswap3(0,3,2);lswap2(1,5);}
  316. else if(d[1]<=d[4]) if(d[1]<=d[2]) {countOfCompare+=10; lswap4(0,5,4,2);lswap2(1,3);}
  317. else {countOfCompare+=10; lswap6(0,5,4,1,3,2);}
  318. else {countOfCompare+=9; lswap5(0,5,1,3,2);}
  319. else if(d[2]<=d[5]) if(d[1]<=d[4]) if(d[1]<=d[5]) {countOfCompare+=9; lswap4(0,3,1,2);lswap2(4,5);}
  320. else if(d[0]<=d[5]) {countOfCompare+=10; lswap6(0,3,5,4,1,2);}
  321. else {countOfCompare+=10; lswap2(0,3);lswap4(1,2,5,4);}
  322. else if(d[0]<=d[4]) if(d[0]<=d[5]) {countOfCompare+=10; lswap5(0,3,5,1,2);}
  323. else {countOfCompare+=10; lswap2(0,3);lswap3(1,2,5);}
  324. else {countOfCompare+=9; lswap3(0,3,4);lswap3(1,2,5);}
  325. else if(d[3]<=d[5]) if(d[1]<=d[4]) {countOfCompare+=9; lswap2(0,3);lswap3(1,5,4);}
  326. else if(d[0]<=d[4]) {countOfCompare+=10; lswap2(0,3);lswap2(1,5);}
  327. else {countOfCompare+=10; lswap3(0,3,4);lswap2(1,5);}
  328. else if(d[1]<=d[4]) {countOfCompare+=9; lswap5(0,5,4,1,3);}
  329. else if(d[0]<=d[4]) {countOfCompare+=10; lswap4(0,5,1,3);}
  330. else {countOfCompare+=10; lswap5(0,5,1,3,4);}
  331. else if(d[0]<=d[3]) if(d[3]<=d[4]) if(d[1]<=d[4]) if(d[1]<=d[3]) if(d[1]<=d[5]) if(d[3]<=d[5]) {countOfCompare+=10; lswap3(2,3,5);}
  332. else {countOfCompare+=10; lswap2(2,5);}
  333. else if(d[0]<=d[5]) {countOfCompare+=10; lswap3(1,5,2);}
  334. else {countOfCompare+=10; lswap4(0,5,2,1);}
  335. else if(d[3]<=d[5]) if(d[1]<=d[5]) {countOfCompare+=10; lswap4(1,3,5,2);}
  336. else {countOfCompare+=10; lswap2(1,3);lswap2(2,5);}
  337. else if(d[0]<=d[5]) {countOfCompare+=10; lswap4(1,5,2,3);}
  338. else {countOfCompare+=10; lswap5(0,5,2,3,1);}
  339. else if(d[1]<=d[2]) if(d[3]<=d[5]) {countOfCompare+=9; lswap3(1,3,4);lswap2(2,5);}
  340. else if(d[0]<=d[5]) {countOfCompare+=10; lswap5(1,5,2,3,4);}
  341. else {countOfCompare+=10; lswap6(0,5,2,3,4,1);}
  342. else if(d[3]<=d[5]) {countOfCompare+=9; lswap5(1,3,4,2,5);}
  343. else if(d[0]<=d[5]) {countOfCompare+=10; lswap2(1,5);lswap3(2,3,4);}
  344. else {countOfCompare+=10; lswap3(0,5,1);lswap3(2,3,4);}
  345. else if(d[1]<=d[3]) if(d[1]<=d[4]) if(d[1]<=d[5]) {countOfCompare+=9; lswap2(2,5);lswap2(3,4);}
  346. else if(d[0]<=d[5]) {countOfCompare+=10; lswap3(1,5,2);lswap2(3,4);}
  347. else {countOfCompare+=10; lswap4(0,5,2,1);lswap2(3,4);}
  348. else if(d[0]<=d[4]) if(d[0]<=d[5]) {countOfCompare+=10; lswap5(1,5,2,4,3);}
  349. else {countOfCompare+=10; lswap6(0,5,2,4,3,1);}
  350. else {countOfCompare+=9; lswap3(0,5,2);lswap3(1,4,3);}
  351. else if(d[1]<=d[2]) if(d[0]<=d[4]) if(d[0]<=d[5]) {countOfCompare+=10; lswap4(1,5,2,4);}
  352. else {countOfCompare+=10; lswap5(0,5,2,4,1);}
  353. else {countOfCompare+=9; lswap3(0,5,2);lswap2(1,4);}
  354. else if(d[0]<=d[4]) if(d[0]<=d[5]) {countOfCompare+=10; lswap2(1,5);lswap2(2,4);}
  355. else {countOfCompare+=10; lswap3(0,5,1);lswap2(2,4);}
  356. else {countOfCompare+=9; lswap5(0,5,1,4,2);}
  357. else if(d[3]<=d[5]) if(d[0]<=d[5]) if(d[1]<=d[4]) if(d[1]<=d[5]) {countOfCompare+=9; lswap5(0,3,5,2,1);}
  358. else {countOfCompare+=9; lswap3(0,3,1);lswap2(2,5);}
  359. else if(d[1]<=d[2]) {countOfCompare+=9; lswap4(0,3,4,1);lswap2(2,5);}
  360. else {countOfCompare+=9; lswap6(0,3,4,2,5,1);}
  361. else if(d[0]<=d[4]) if(d[1]<=d[4]) {countOfCompare+=9; lswap5(0,3,1,5,2);}
  362. else if(d[1]<=d[2]) {countOfCompare+=10; lswap6(0,3,4,1,5,2);}
  363. else {countOfCompare+=10; lswap4(0,3,4,2);lswap2(1,5);}
  364. else if(d[0]<=d[2]) if(d[1]<=d[2]) {countOfCompare+=10; lswap2(0,3);lswap4(1,5,2,4);}
  365. else {countOfCompare+=10; lswap2(0,3);lswap2(1,5);lswap2(2,4);}
  366. else {countOfCompare+=9; lswap4(0,3,2,4);lswap2(1,5);}
  367. else if(d[1]<=d[2]) if(d[0]<=d[4]) if(d[1]<=d[4]) {countOfCompare+=9; lswap3(0,5,2);lswap2(1,3);}
  368. else {countOfCompare+=9; lswap3(0,5,2);lswap3(1,3,4);}
  369. else if(d[3]<=d[4]) {countOfCompare+=9; lswap6(0,5,2,4,1,3);}
  370. else {countOfCompare+=9; lswap4(0,5,2,3);lswap2(1,4);}
  371. else if(d[0]<=d[2]) if(d[0]<=d[4]) {countOfCompare+=9; lswap6(0,5,1,3,4,2);}
  372. else if(d[3]<=d[4]) {countOfCompare+=10; lswap4(0,5,1,3);lswap2(2,4);}
  373. else {countOfCompare+=10; lswap6(0,5,1,4,2,3);}
  374. else if(d[3]<=d[4]) {countOfCompare+=9; lswap6(0,5,1,3,2,4);}
  375. else {countOfCompare+=9; lswap4(0,5,1,4);lswap2(2,3);}
  376. else if(d[2]<=d[3]) if(d[4]<=d[5]) if(d[2]<=d[4]) if(d[0]<=d[3]) if(d[3]<=d[5]) if(d[1]<=d[2]) if(d[0]<=d[2]) if(d[3]<=d[4]) {countOfCompare+=9; lswap2(0,1);}
  377. else {countOfCompare+=9; lswap2(0,1);lswap2(3,4);}
  378. else if(d[0]<=d[4]) if(d[3]<=d[4]) {countOfCompare+=10; lswap3(0,1,2);}
  379. else {countOfCompare+=10; lswap3(0,1,2);lswap2(3,4);}
  380. else {countOfCompare+=9; lswap5(0,1,2,4,3);}
  381. else if(d[0]<=d[4]) if(d[3]<=d[4]) {countOfCompare+=9; lswap2(0,2);}
  382. else {countOfCompare+=9; lswap2(0,2);lswap2(3,4);}
  383. else if(d[1]<=d[4]) {countOfCompare+=9; lswap4(0,2,4,3);}
  384. else {countOfCompare+=9; lswap5(0,2,1,4,3);}
  385. else if(d[0]<=d[5]) if(d[0]<=d[4]) if(d[0]<=d[2]) {countOfCompare+=9; lswap2(0,1);lswap3(3,4,5);}
  386. else if(d[1]<=d[2]) {countOfCompare+=10; lswap3(0,1,2);lswap3(3,4,5);}
  387. else {countOfCompare+=10; lswap2(0,2);lswap3(3,4,5);}
  388. else if(d[1]<=d[4]) if(d[1]<=d[2]) {countOfCompare+=10; lswap6(0,1,2,4,5,3);}
  389. else {countOfCompare+=10; lswap5(0,2,4,5,3);}
  390. else {countOfCompare+=9; lswap6(0,2,1,4,5,3);}
  391. else if(d[1]<=d[4]) if(d[1]<=d[2]) {countOfCompare+=9; lswap4(0,1,2,4);lswap2(3,5);}
  392. else {countOfCompare+=9; lswap3(0,2,4);lswap2(3,5);}
  393. else if(d[1]<=d[5]) {countOfCompare+=9; lswap4(0,2,1,4);lswap2(3,5);}
  394. else {countOfCompare+=9; lswap6(0,2,5,3,1,4);}
  395. else if(d[3]<=d[4]) if(d[1]<=d[3]) if(d[1]<=d[2]) if(d[0]<=d[4]) {countOfCompare+=9; lswap4(0,1,2,3);}
  396. else if(d[0]<=d[5]) {countOfCompare+=10; lswap5(0,1,2,3,4);}
  397. else {countOfCompare+=10; lswap6(0,1,2,3,4,5);}
  398. else if(d[0]<=d[4]) {countOfCompare+=9; lswap3(0,2,3);}
  399. else if(d[0]<=d[5]) {countOfCompare+=10; lswap4(0,2,3,4);}
  400. else {countOfCompare+=10; lswap5(0,2,3,4,5);}
  401. else if(d[1]<=d[4]) if(d[0]<=d[4]) {countOfCompare+=9; lswap4(0,2,1,3);}
  402. else if(d[0]<=d[5]) {countOfCompare+=10; lswap5(0,2,1,3,4);}
  403. else {countOfCompare+=10; lswap6(0,2,1,3,4,5);}
  404. else if(d[1]<=d[5]) if(d[0]<=d[5]) {countOfCompare+=10; lswap3(0,2,4);lswap2(1,3);}
  405. else {countOfCompare+=10; lswap4(0,2,4,5);lswap2(1,3);}
  406. else {countOfCompare+=9; lswap6(0,2,4,1,3,5);}
  407. else if(d[1]<=d[4]) if(d[1]<=d[2]) if(d[3]<=d[5]) if(d[0]<=d[5]) {countOfCompare+=10; lswap4(0,1,2,4);}
  408. else {countOfCompare+=10; lswap5(0,1,2,4,5);}
  409. else {countOfCompare+=9; lswap6(0,1,2,4,3,5);}
  410. else if(d[3]<=d[5]) if(d[0]<=d[5]) {countOfCompare+=10; lswap3(0,2,4);}
  411. else {countOfCompare+=10; lswap4(0,2,4,5);}
  412. else {countOfCompare+=9; lswap5(0,2,4,3,5);}
  413. else if(d[1]<=d[3]) if(d[3]<=d[5]) if(d[0]<=d[5]) {countOfCompare+=10; lswap4(0,2,1,4);}
  414. else {countOfCompare+=10; lswap5(0,2,1,4,5);}
  415. else if(d[1]<=d[5]) {countOfCompare+=10; lswap6(0,2,1,4,3,5);}
  416. else {countOfCompare+=10; lswap3(0,2,5);lswap3(1,4,3);}
  417. else if(d[1]<=d[5]) if(d[0]<=d[5]) {countOfCompare+=10; lswap5(0,2,3,1,4);}
  418. else {countOfCompare+=10; lswap6(0,2,3,1,4,5);}
  419. else if(d[3]<=d[5]) {countOfCompare+=10; lswap4(0,2,3,5);lswap2(1,4);}
  420. else {countOfCompare+=10; lswap3(0,2,5);lswap2(1,4);}
  421. else if(d[0]<=d[3]) if(d[0]<=d[2]) if(d[2]<=d[5]) if(d[3]<=d[5]) if(d[1]<=d[4]) if(d[0]<=d[4]) {countOfCompare+=10; lswap2(0,1);lswap3(2,4,3);}
  422. else {countOfCompare+=10; lswap5(0,1,4,3,2);}
  423. else {countOfCompare+=9; lswap4(0,4,3,2);}
  424. else if(d[1]<=d[4]) if(d[0]<=d[4]) {countOfCompare+=10; lswap2(0,1);lswap4(2,4,5,3);}
  425. else {countOfCompare+=10; lswap6(0,1,4,5,3,2);}
  426. else {countOfCompare+=9; lswap5(0,4,5,3,2);}
  427. else if(d[1]<=d[4]) if(d[0]<=d[4]) {countOfCompare+=9; lswap2(0,1);lswap2(2,4);lswap2(3,5);}
  428. else if(d[0]<=d[5]) {countOfCompare+=10; lswap4(0,1,4,2);lswap2(3,5);}
  429. else {countOfCompare+=10; lswap6(0,1,4,2,5,3);}
  430. else if(d[1]<=d[5]) if(d[0]<=d[5]) {countOfCompare+=10; lswap3(0,4,2);lswap2(3,5);}
  431. else {countOfCompare+=10; lswap5(0,4,2,5,3);}
  432. else {countOfCompare+=9; lswap6(0,4,2,1,5,3);}
  433. else if(d[0]<=d[5]) if(d[3]<=d[5]) if(d[1]<=d[4]) {countOfCompare+=9; lswap4(0,1,4,3);}
  434. else if(d[1]<=d[2]) {countOfCompare+=10; lswap3(0,4,3);}
  435. else {countOfCompare+=10; lswap3(0,4,3);lswap2(1,2);}
  436. else if(d[1]<=d[4]) {countOfCompare+=9; lswap5(0,1,4,5,3);}
  437. else if(d[1]<=d[2]) {countOfCompare+=10; lswap4(0,4,5,3);}
  438. else {countOfCompare+=10; lswap4(0,4,5,3);lswap2(1,2);}
  439. else if(d[2]<=d[5]) if(d[1]<=d[2]) if(d[1]<=d[4]) {countOfCompare+=10; lswap3(0,1,4);lswap2(3,5);}
  440. else {countOfCompare+=10; lswap2(0,4);lswap2(3,5);}
  441. else if(d[1]<=d[5]) {countOfCompare+=10; lswap2(0,4);lswap2(1,2);lswap2(3,5);}
  442. else {countOfCompare+=10; lswap2(0,4);lswap4(1,2,5,3);}
  443. else if(d[1]<=d[5]) if(d[1]<=d[4]) {countOfCompare+=10; lswap3(0,1,4);lswap3(2,5,3);}
  444. else {countOfCompare+=10; lswap2(0,4);lswap3(2,5,3);}
  445. else if(d[1]<=d[2]) {countOfCompare+=10; lswap2(0,4);lswap4(1,5,3,2);}
  446. else {countOfCompare+=10; lswap2(0,4);lswap3(1,5,3);}
  447. else if(d[3]<=d[5]) if(d[0]<=d[5]) if(d[1]<=d[2]) if(d[1]<=d[4]) {countOfCompare+=9; lswap3(0,1,4);}
  448. else {countOfCompare+=9; lswap2(0,4);}
  449. else if(d[1]<=d[3]) {countOfCompare+=9; lswap2(0,4);lswap2(1,2);}
  450. else {countOfCompare+=9; lswap2(0,4);lswap3(1,2,3);}
  451. else if(d[1]<=d[3]) if(d[1]<=d[4]) {countOfCompare+=9; lswap4(0,1,4,5);}
  452. else if(d[1]<=d[2]) {countOfCompare+=10; lswap3(0,4,5);}
  453. else {countOfCompare+=10; lswap3(0,4,5);lswap2(1,2);}
  454. else if(d[1]<=d[5]) {countOfCompare+=9; lswap3(0,4,5);lswap3(1,2,3);}
  455. else {countOfCompare+=9; lswap6(0,4,1,2,3,5);}
  456. else if(d[2]<=d[5]) if(d[1]<=d[5]) if(d[1]<=d[4]) {countOfCompare+=9; lswap5(0,1,4,3,5);}
  457. else if(d[1]<=d[2]) {countOfCompare+=10; lswap4(0,4,3,5);}
  458. else {countOfCompare+=10; lswap4(0,4,3,5);lswap2(1,2);}
  459. else if(d[1]<=d[3]) {countOfCompare+=9; lswap6(0,4,3,1,2,5);}
  460. else {countOfCompare+=9; lswap5(0,4,1,2,5);}
  461. else if(d[1]<=d[5]) if(d[1]<=d[4]) {countOfCompare+=9; lswap6(0,1,4,3,2,5);}
  462. else {countOfCompare+=9; lswap5(0,4,3,2,5);}
  463. else if(d[1]<=d[3]) if(d[1]<=d[2]) {countOfCompare+=10; lswap6(0,4,3,2,1,5);}
  464. else {countOfCompare+=10; lswap5(0,4,3,1,5);}
  465. else {countOfCompare+=9; lswap4(0,4,1,5);}
  466. else if(d[0]<=d[3]) if(d[2]<=d[5]) if(d[0]<=d[5]) if(d[0]<=d[2]) if(d[3]<=d[5]) {countOfCompare+=8; lswap2(0,1);lswap2(4,5);}
  467. else if(d[3]<=d[4]) {countOfCompare+=9; lswap2(0,1);lswap3(3,5,4);}
  468. else {countOfCompare+=9; lswap2(0,1);lswap2(3,5);}
  469. else if(d[1]<=d[2]) if(d[3]<=d[5]) {countOfCompare+=9; lswap3(0,1,2);lswap2(4,5);}
  470. else if(d[3]<=d[4]) {countOfCompare+=10; lswap3(0,1,2);lswap3(3,5,4);}
  471. else {countOfCompare+=10; lswap3(0,1,2);lswap2(3,5);}
  472. else if(d[3]<=d[5]) {countOfCompare+=9; lswap2(0,2);lswap2(4,5);}
  473. else if(d[3]<=d[4]) {countOfCompare+=10; lswap2(0,2);lswap3(3,5,4);}
  474. else {countOfCompare+=10; lswap2(0,2);lswap2(3,5);}
  475. else if(d[0]<=d[4]) if(d[3]<=d[4]) if(d[1]<=d[5]) if(d[1]<=d[2]) {countOfCompare+=10; lswap6(0,1,2,5,4,3);}
  476. else {countOfCompare+=10; lswap5(0,2,5,4,3);}
  477. else {countOfCompare+=9; lswap6(0,2,1,5,4,3);}
  478. else if(d[1]<=d[5]) if(d[1]<=d[2]) {countOfCompare+=10; lswap5(0,1,2,5,3);}
  479. else {countOfCompare+=10; lswap4(0,2,5,3);}
  480. else {countOfCompare+=9; lswap5(0,2,1,5,3);}
  481. else if(d[1]<=d[5]) if(d[1]<=d[2]) {countOfCompare+=9; lswap6(0,1,2,5,3,4);}
  482. else {countOfCompare+=9; lswap5(0,2,5,3,4);}
  483. else if(d[1]<=d[4]) {countOfCompare+=9; lswap6(0,2,1,5,3,4);}
  484. else {countOfCompare+=9; lswap3(0,2,4);lswap3(1,5,3);}
  485. else if(d[0]<=d[2]) if(d[2]<=d[4]) if(d[3]<=d[4]) if(d[1]<=d[5]) if(d[0]<=d[5]) {countOfCompare+=10; lswap2(0,1);lswap4(2,5,4,3);}
  486. else {countOfCompare+=10; lswap6(0,1,5,4,3,2);}
  487. else {countOfCompare+=9; lswap5(0,5,4,3,2);}
  488. else if(d[1]<=d[5]) if(d[0]<=d[5]) {countOfCompare+=10; lswap2(0,1);lswap3(2,5,3);}
  489. else {countOfCompare+=10; lswap5(0,1,5,3,2);}
  490. else {countOfCompare+=9; lswap4(0,5,3,2);}
  491. else if(d[0]<=d[4]) if(d[1]<=d[5]) if(d[0]<=d[5]) {countOfCompare+=10; lswap2(0,1);lswap4(2,5,3,4);}
  492. else {countOfCompare+=10; lswap6(0,1,5,3,4,2);}
  493. else {countOfCompare+=9; lswap5(0,5,3,4,2);}
  494. else if(d[1]<=d[4]) if(d[1]<=d[5]) {countOfCompare+=10; lswap4(0,1,5,3);lswap2(2,4);}
  495. else {countOfCompare+=10; lswap3(0,5,3);lswap2(2,4);}
  496. else {countOfCompare+=9; lswap3(0,5,3);lswap3(1,4,2);}
  497. else if(d[0]<=d[4]) if(d[3]<=d[4]) if(d[1]<=d[5]) {countOfCompare+=9; lswap5(0,1,5,4,3);}
  498. else if(d[1]<=d[2]) {countOfCompare+=10; lswap4(0,5,4,3);}
  499. else {countOfCompare+=10; lswap4(0,5,4,3);lswap2(1,2);}
  500. else if(d[1]<=d[5]) {countOfCompare+=9; lswap4(0,1,5,3);}
  501. else if(d[1]<=d[2]) {countOfCompare+=10; lswap3(0,5,3);}
  502. else {countOfCompare+=10; lswap3(0,5,3);lswap2(1,2);}
  503. else if(d[2]<=d[4]) if(d[1]<=d[2]) if(d[1]<=d[5]) {countOfCompare+=10; lswap5(0,1,5,3,4);}
  504. else {countOfCompare+=10; lswap4(0,5,3,4);}
  505. else if(d[1]<=d[4]) {countOfCompare+=10; lswap4(0,5,3,4);lswap2(1,2);}
  506. else {countOfCompare+=10; lswap6(0,5,3,1,2,4);}
  507. else if(d[1]<=d[4]) if(d[1]<=d[5]) {countOfCompare+=10; lswap6(0,1,5,3,2,4);}
  508. else {countOfCompare+=10; lswap5(0,5,3,2,4);}
  509. else if(d[1]<=d[2]) {countOfCompare+=10; lswap6(0,5,3,2,1,4);}
  510. else {countOfCompare+=10; lswap5(0,5,3,1,4);}
  511. else if(d[2]<=d[5]) if(d[3]<=d[5]) if(d[1]<=d[3]) if(d[1]<=d[2]) if(d[0]<=d[4]) if(d[0]<=d[5]) {countOfCompare+=10; lswap4(0,1,2,3);lswap2(4,5);}
  512. else {countOfCompare+=10; lswap6(0,1,2,3,5,4);}
  513. else {countOfCompare+=9; lswap5(0,1,2,3,5);}
  514. else if(d[0]<=d[4]) if(d[0]<=d[5]) {countOfCompare+=10; lswap3(0,2,3);lswap2(4,5);}
  515. else {countOfCompare+=10; lswap5(0,2,3,5,4);}
  516. else {countOfCompare+=9; lswap4(0,2,3,5);}
  517. else if(d[0]<=d[4]) if(d[1]<=d[5]) if(d[0]<=d[5]) {countOfCompare+=10; lswap4(0,2,1,3);lswap2(4,5);}
  518. else {countOfCompare+=10; lswap6(0,2,1,3,5,4);}
  519. else {countOfCompare+=9; lswap4(0,2,5,4);lswap2(1,3);}
  520. else if(d[1]<=d[4]) if(d[1]<=d[5]) {countOfCompare+=10; lswap5(0,2,1,3,5);}
  521. else {countOfCompare+=10; lswap3(0,2,5);lswap2(1,3);}
  522. else {countOfCompare+=9; lswap3(0,2,5);lswap3(1,3,4);}
  523. else if(d[1]<=d[5]) if(d[1]<=d[2]) if(d[0]<=d[4]) {countOfCompare+=9; lswap5(0,1,2,5,4);}
  524. else if(d[3]<=d[4]) {countOfCompare+=10; lswap4(0,1,2,5);}
  525. else {countOfCompare+=10; lswap4(0,1,2,5);lswap2(3,4);}
  526. else if(d[0]<=d[4]) {countOfCompare+=9; lswap4(0,2,5,4);}
  527. else if(d[3]<=d[4]) {countOfCompare+=10; lswap3(0,2,5);}
  528. else {countOfCompare+=10; lswap3(0,2,5);lswap2(3,4);}
  529. else if(d[1]<=d[3]) if(d[3]<=d[4]) if(d[0]<=d[4]) {countOfCompare+=10; lswap5(0,2,1,5,4);}
  530. else {countOfCompare+=10; lswap4(0,2,1,5);}
  531. else if(d[1]<=d[4]) {countOfCompare+=10; lswap4(0,2,1,5);lswap2(3,4);}
  532. else {countOfCompare+=10; lswap6(0,2,4,3,1,5);}
  533. else if(d[1]<=d[4]) if(d[0]<=d[4]) {countOfCompare+=10; lswap6(0,2,3,1,5,4);}
  534. else {countOfCompare+=10; lswap5(0,2,3,1,5);}
  535. else if(d[3]<=d[4]) {countOfCompare+=10; lswap6(0,2,3,4,1,5);}
  536. else {countOfCompare+=10; lswap5(0,2,4,1,5);}
  537. else if(d[1]<=d[2]) if(d[1]<=d[5]) if(d[3]<=d[4]) if(d[0]<=d[4]) {countOfCompare+=9; lswap4(0,1,5,4);}
  538. else {countOfCompare+=9; lswap3(0,1,5);}
  539. else if(d[2]<=d[4]) {countOfCompare+=9; lswap3(0,1,5);lswap2(3,4);}
  540. else {countOfCompare+=9; lswap3(0,1,5);lswap3(2,4,3);}
  541. else if(d[2]<=d[4]) if(d[0]<=d[4]) {countOfCompare+=9; lswap3(0,5,4);}
  542. else if(d[3]<=d[4]) {countOfCompare+=10; lswap2(0,5);}
  543. else {countOfCompare+=10; lswap2(0,5);lswap2(3,4);}
  544. else if(d[1]<=d[4]) {countOfCompare+=9; lswap2(0,5);lswap3(2,4,3);}
  545. else {countOfCompare+=9; lswap2(0,5);lswap4(1,4,3,2);}
  546. else if(d[1]<=d[3]) if(d[1]<=d[4]) if(d[0]<=d[4]) {countOfCompare+=9; lswap3(0,5,4);lswap2(1,2);}
  547. else if(d[3]<=d[4]) {countOfCompare+=10; lswap2(0,5);lswap2(1,2);}
  548. else {countOfCompare+=10; lswap2(0,5);lswap2(1,2);lswap2(3,4);}
  549. else if(d[2]<=d[4]) {countOfCompare+=9; lswap2(0,5);lswap4(1,2,4,3);}
  550. else {countOfCompare+=9; lswap2(0,5);lswap3(1,4,3);}
  551. else if(d[1]<=d[4]) if(d[0]<=d[4]) {countOfCompare+=9; lswap3(0,5,4);lswap3(1,2,3);}
  552. else {countOfCompare+=9; lswap2(0,5);lswap3(1,2,3);}
  553. else if(d[2]<=d[4]) if(d[3]<=d[4]) {countOfCompare+=10; lswap2(0,5);lswap4(1,2,3,4);}
  554. else {countOfCompare+=10; lswap2(0,5);lswap3(1,2,4);}
  555. else {countOfCompare+=9; lswap2(0,5);lswap2(1,4);}
  556. else if(d[4]<=d[5]) if(d[0]<=d[2]) if(d[1]<=d[4]) if(d[0]<=d[4]) if(d[0]<=d[3]) if(d[2]<=d[5]) if(d[2]<=d[4]) {countOfCompare+=9; lswap2(0,1);lswap2(2,3);}
  557. else if(d[3]<=d[4]) {countOfCompare+=10; lswap2(0,1);lswap3(2,3,4);}
  558. else {countOfCompare+=10; lswap2(0,1);lswap2(2,4);}
  559. else if(d[3]<=d[5]) if(d[3]<=d[4]) {countOfCompare+=10; lswap2(0,1);lswap4(2,3,4,5);}
  560. else {countOfCompare+=10; lswap2(0,1);lswap3(2,4,5);}
  561. else {countOfCompare+=9; lswap2(0,1);lswap4(2,4,3,5);}
  562. else if(d[1]<=d[3]) if(d[2]<=d[4]) {countOfCompare+=9; lswap4(0,1,3,2);}
  563. else if(d[2]<=d[5]) {countOfCompare+=10; lswap5(0,1,3,4,2);}
  564. else {countOfCompare+=10; lswap6(0,1,3,4,5,2);}
  565. else if(d[2]<=d[4]) {countOfCompare+=9; lswap3(0,3,2);}
  566. else if(d[2]<=d[5]) {countOfCompare+=10; lswap4(0,3,4,2);}
  567. else {countOfCompare+=10; lswap5(0,3,4,5,2);}
  568. else if(d[3]<=d[4]) if(d[1]<=d[3]) if(d[2]<=d[5]) {countOfCompare+=9; lswap3(0,1,3);lswap2(2,4);}
  569. else if(d[0]<=d[5]) {countOfCompare+=10; lswap3(0,1,3);lswap3(2,4,5);}
  570. else {countOfCompare+=10; lswap6(0,1,3,5,2,4);}
  571. else if(d[2]<=d[5]) {countOfCompare+=9; lswap2(0,3);lswap2(2,4);}
  572. else if(d[0]<=d[5]) {countOfCompare+=10; lswap2(0,3);lswap3(2,4,5);}
  573. else {countOfCompare+=10; lswap5(0,3,5,2,4);}
  574. else if(d[0]<=d[3]) if(d[3]<=d[5]) if(d[2]<=d[5]) {countOfCompare+=10; lswap4(0,1,4,2);}
  575. else {countOfCompare+=10; lswap5(0,1,4,5,2);}
  576. else if(d[0]<=d[5]) {countOfCompare+=10; lswap6(0,1,4,3,5,2);}
  577. else {countOfCompare+=10; lswap4(0,1,4,3);lswap2(2,5);}
  578. else if(d[0]<=d[5]) if(d[2]<=d[5]) {countOfCompare+=10; lswap5(0,1,4,2,3);}
  579. else {countOfCompare+=10; lswap6(0,1,4,5,2,3);}
  580. else if(d[3]<=d[5]) {countOfCompare+=10; lswap3(0,1,4);lswap3(2,3,5);}
  581. else {countOfCompare+=10; lswap3(0,1,4);lswap2(2,5);}
  582. else if(d[1]<=d[3]) if(d[3]<=d[5]) if(d[0]<=d[3]) if(d[2]<=d[5]) {countOfCompare+=9; lswap3(0,4,2);}
  583. else {countOfCompare+=9; lswap4(0,4,5,2);}
  584. else if(d[2]<=d[5]) {countOfCompare+=9; lswap4(0,4,2,3);}
  585. else if(d[0]<=d[5]) {countOfCompare+=10; lswap5(0,4,5,2,3);}
  586. else {countOfCompare+=10; lswap2(0,4);lswap3(2,3,5);}
  587. else if(d[0]<=d[3]) if(d[1]<=d[5]) if(d[0]<=d[5]) {countOfCompare+=10; lswap5(0,4,3,5,2);}
  588. else {countOfCompare+=10; lswap3(0,4,3);lswap2(2,5);}
  589. else {countOfCompare+=9; lswap3(0,4,3);lswap3(1,5,2);}
  590. else if(d[1]<=d[5]) {countOfCompare+=9; lswap2(0,4);lswap2(2,5);}
  591. else {countOfCompare+=9; lswap2(0,4);lswap3(1,5,2);}
  592. else if(d[0]<=d[5]) if(d[2]<=d[5]) if(d[3]<=d[4]) {countOfCompare+=9; lswap2(0,3);lswap3(1,4,2);}
  593. else {countOfCompare+=9; lswap5(0,4,2,1,3);}
  594. else if(d[3]<=d[4]) {countOfCompare+=9; lswap2(0,3);lswap4(1,4,5,2);}
  595. else {countOfCompare+=9; lswap6(0,4,5,2,1,3);}
  596. else if(d[1]<=d[5]) if(d[3]<=d[4]) {countOfCompare+=9; lswap6(0,3,5,2,1,4);}
  597. else {countOfCompare+=9; lswap2(0,4);lswap4(1,3,5,2);}
  598. else if(d[3]<=d[5]) if(d[3]<=d[4]) {countOfCompare+=10; lswap4(0,3,1,4);lswap2(2,5);}
  599. else {countOfCompare+=10; lswap2(0,4);lswap2(1,3);lswap2(2,5);}
  600. else {countOfCompare+=9; lswap2(0,4);lswap4(1,5,2,3);}
  601. else if(d[1]<=d[4]) if(d[1]<=d[3]) if(d[0]<=d[5]) if(d[2]<=d[4]) if(d[0]<=d[4]) {countOfCompare+=9; lswap3(0,1,3);}
  602. else {countOfCompare+=9; lswap4(0,1,3,4);}
  603. else if(d[3]<=d[4]) {countOfCompare+=9; lswap5(0,1,3,2,4);}
  604. else {countOfCompare+=9; lswap3(0,1,4);lswap2(2,3);}
  605. else if(d[2]<=d[5]) if(d[2]<=d[4]) {countOfCompare+=9; lswap5(0,1,3,4,5);}
  606. else if(d[3]<=d[4]) {countOfCompare+=10; lswap6(0,1,3,2,4,5);}
  607. else {countOfCompare+=10; lswap4(0,1,4,5);lswap2(2,3);}
  608. else if(d[3]<=d[5]) if(d[3]<=d[4]) {countOfCompare+=10; lswap4(0,1,3,5);lswap2(2,4);}
  609. else {countOfCompare+=10; lswap6(0,1,4,2,3,5);}
  610. else {countOfCompare+=9; lswap5(0,1,4,2,5);}
  611. else if(d[0]<=d[5]) if(d[0]<=d[4]) if(d[1]<=d[2]) {countOfCompare+=9; lswap2(0,3);}
  612. else {countOfCompare+=9; lswap2(0,3);lswap2(1,2);}
  613. else if(d[2]<=d[4]) if(d[1]<=d[2]) {countOfCompare+=10; lswap3(0,3,4);}
  614. else {countOfCompare+=10; lswap3(0,3,4);lswap2(1,2);}
  615. else {countOfCompare+=9; lswap4(0,3,2,4);}
  616. else if(d[2]<=d[4]) if(d[1]<=d[2]) {countOfCompare+=9; lswap4(0,3,4,5);}
  617. else {countOfCompare+=9; lswap4(0,3,4,5);lswap2(1,2);}
  618. else if(d[2]<=d[5]) {countOfCompare+=9; lswap5(0,3,2,4,5);}
  619. else {countOfCompare+=9; lswap3(0,3,5);lswap2(2,4);}
  620. else if(d[1]<=d[2]) if(d[2]<=d[5]) if(d[0]<=d[5]) if(d[1]<=d[3]) {countOfCompare+=9; lswap2(0,4);lswap2(2,3);}
  621. else if(d[3]<=d[4]) {countOfCompare+=10; lswap5(0,3,2,1,4);}
  622. else {countOfCompare+=10; lswap2(0,4);lswap3(1,3,2);}
  623. else if(d[1]<=d[3]) {countOfCompare+=9; lswap3(0,4,5);lswap2(2,3);}
  624. else if(d[3]<=d[4]) {countOfCompare+=10; lswap6(0,3,2,1,4,5);}
  625. else {countOfCompare+=10; lswap3(0,4,5);lswap3(1,3,2);}
  626. else if(d[1]<=d[5]) if(d[1]<=d[3]) if(d[3]<=d[5]) {countOfCompare+=10; lswap5(0,4,2,3,5);}
  627. else {countOfCompare+=10; lswap4(0,4,2,5);}
  628. else if(d[3]<=d[4]) {countOfCompare+=10; lswap3(0,3,5);lswap3(1,4,2);}
  629. else {countOfCompare+=10; lswap6(0,4,2,1,3,5);}
  630. else if(d[3]<=d[5]) if(d[3]<=d[4]) {countOfCompare+=10; lswap6(0,3,1,4,2,5);}
  631. else {countOfCompare+=10; lswap4(0,4,2,5);lswap2(1,3);}
  632. else if(d[1]<=d[3]) {countOfCompare+=10; lswap5(0,4,2,1,5);}
  633. else {countOfCompare+=10; lswap6(0,4,2,3,1,5);}
  634. else if(d[1]<=d[5]) if(d[0]<=d[5]) if(d[2]<=d[4]) {countOfCompare+=9; lswap5(0,3,1,2,4);}
  635. else if(d[3]<=d[4]) {countOfCompare+=10; lswap4(0,3,1,4);}
  636. else {countOfCompare+=10; lswap2(0,4);lswap2(1,3);}
  637. else if(d[2]<=d[4]) {countOfCompare+=9; lswap6(0,3,1,2,4,5);}
  638. else if(d[3]<=d[4]) {countOfCompare+=10; lswap5(0,3,1,4,5);}
  639. else {countOfCompare+=10; lswap3(0,4,5);lswap2(1,3);}
  640. else if(d[2]<=d[5]) if(d[2]<=d[4]) {countOfCompare+=9; lswap3(0,3,5);lswap3(1,2,4);}
  641. else if(d[3]<=d[4]) {countOfCompare+=10; lswap3(0,3,5);lswap2(1,4);}
  642. else {countOfCompare+=10; lswap5(0,4,1,3,5);}
  643. else if(d[3]<=d[5]) if(d[3]<=d[4]) {countOfCompare+=10; lswap4(0,3,2,5);lswap2(1,4);}
  644. else {countOfCompare+=10; lswap6(0,4,1,3,2,5);}
  645. else {countOfCompare+=9; lswap4(0,4,1,5);lswap2(2,3);}
  646. else if(d[0]<=d[2]) if(d[3]<=d[5]) if(d[1]<=d[3]) if(d[2]<=d[4]) if(d[0]<=d[3]) if(d[2]<=d[5]) {countOfCompare+=9; lswap2(0,1);lswap2(2,3);lswap2(4,5);}
  647. else {countOfCompare+=9; lswap2(0,1);lswap4(2,3,5,4);}
  648. else if(d[2]<=d[5]) {countOfCompare+=9; lswap4(0,1,3,2);lswap2(4,5);}
  649. else if(d[0]<=d[5]) {countOfCompare+=10; lswap6(0,1,3,5,4,2);}
  650. else {countOfCompare+=10; lswap3(0,1,3);lswap3(2,5,4);}
  651. else if(d[0]<=d[5]) if(d[0]<=d[3]) {countOfCompare+=9; lswap2(0,1);lswap3(2,3,5);}
  652. else {countOfCompare+=9; lswap5(0,1,3,5,2);}
  653. else if(d[0]<=d[4]) {countOfCompare+=9; lswap3(0,1,3);lswap2(2,5);}
  654. else {countOfCompare+=9; lswap4(0,1,3,4);lswap2(2,5);}
  655. else if(d[2]<=d[4]) if(d[0]<=d[5]) if(d[2]<=d[5]) {countOfCompare+=9; lswap3(0,3,2);lswap2(4,5);}
  656. else {countOfCompare+=9; lswap5(0,3,5,4,2);}
  657. else if(d[1]<=d[5]) {countOfCompare+=9; lswap2(0,3);lswap3(2,5,4);}
  658. else {countOfCompare+=9; lswap2(0,3);lswap4(1,5,4,2);}
  659. else if(d[0]<=d[4]) if(d[1]<=d[5]) if(d[0]<=d[5]) {countOfCompare+=10; lswap4(0,3,5,2);}
  660. else {countOfCompare+=10; lswap2(0,3);lswap2(2,5);}
  661. else {countOfCompare+=9; lswap2(0,3);lswap3(1,5,2);}
  662. else if(d[1]<=d[4]) if(d[1]<=d[5]) {countOfCompare+=10; lswap3(0,3,4);lswap2(2,5);}
  663. else {countOfCompare+=10; lswap3(0,3,4);lswap3(1,5,2);}
  664. else {countOfCompare+=9; lswap6(0,3,1,5,2,4);}
  665. else if(d[0]<=d[3]) if(d[3]<=d[4]) if(d[2]<=d[4]) if(d[1]<=d[5]) if(d[0]<=d[5]) {countOfCompare+=10; lswap2(0,1);lswap3(2,5,4);}
  666. else {countOfCompare+=10; lswap5(0,1,5,4,2);}
  667. else {countOfCompare+=9; lswap4(0,5,4,2);}
  668. else if(d[1]<=d[5]) if(d[0]<=d[5]) {countOfCompare+=10; lswap2(0,1);lswap2(2,5);}
  669. else {countOfCompare+=10; lswap4(0,1,5,2);}
  670. else {countOfCompare+=9; lswap3(0,5,2);}
  671. else if(d[0]<=d[4]) if(d[1]<=d[5]) if(d[0]<=d[5]) {countOfCompare+=10; lswap2(0,1);lswap2(2,5);lswap2(3,4);}
  672. else {countOfCompare+=10; lswap4(0,1,5,2);lswap2(3,4);}
  673. else {countOfCompare+=9; lswap3(0,5,2);lswap2(3,4);}
  674. else if(d[1]<=d[4]) if(d[1]<=d[5]) {countOfCompare+=10; lswap6(0,1,5,2,4,3);}
  675. else {countOfCompare+=10; lswap5(0,5,2,4,3);}
  676. else {countOfCompare+=9; lswap6(0,5,2,1,4,3);}
  677. else if(d[0]<=d[4]) if(d[2]<=d[4]) if(d[1]<=d[3]) if(d[1]<=d[5]) {countOfCompare+=10; lswap6(0,1,5,4,2,3);}
  678. else {countOfCompare+=10; lswap5(0,5,4,2,3);}
  679. else {countOfCompare+=9; lswap6(0,5,4,2,1,3);}
  680. else if(d[1]<=d[3]) if(d[1]<=d[5]) {countOfCompare+=10; lswap5(0,1,5,2,3);}
  681. else {countOfCompare+=10; lswap4(0,5,2,3);}
  682. else {countOfCompare+=9; lswap5(0,5,2,1,3);}
  683. else if(d[3]<=d[4]) if(d[1]<=d[3]) if(d[1]<=d[5]) {countOfCompare+=10; lswap6(0,1,5,2,3,4);}
  684. else {countOfCompare+=10; lswap5(0,5,2,3,4);}
  685. else if(d[1]<=d[4]) {countOfCompare+=10; lswap6(0,5,2,1,3,4);}
  686. else {countOfCompare+=10; lswap4(0,5,2,4);lswap2(1,3);}
  687. else if(d[1]<=d[4]) if(d[1]<=d[5]) {countOfCompare+=10; lswap5(0,1,5,2,4);}
  688. else {countOfCompare+=10; lswap4(0,5,2,4);}
  689. else if(d[1]<=d[3]) {countOfCompare+=10; lswap5(0,5,2,1,4);}
  690. else {countOfCompare+=10; lswap6(0,5,2,3,1,4);}
  691. else if(d[3]<=d[5]) if(d[2]<=d[5]) if(d[1]<=d[2]) if(d[1]<=d[3]) if(d[0]<=d[4]) if(d[0]<=d[5]) {countOfCompare+=10; lswap3(0,1,3);lswap2(4,5);}
  692. else {countOfCompare+=10; lswap5(0,1,3,5,4);}
  693. else {countOfCompare+=9; lswap4(0,1,3,5);}
  694. else if(d[0]<=d[4]) if(d[0]<=d[5]) {countOfCompare+=10; lswap2(0,3);lswap2(4,5);}
  695. else {countOfCompare+=10; lswap4(0,3,5,4);}
  696. else {countOfCompare+=9; lswap3(0,3,5);}
  697. else if(d[0]<=d[4]) if(d[1]<=d[5]) if(d[0]<=d[5]) {countOfCompare+=10; lswap2(0,3);lswap2(1,2);lswap2(4,5);}
  698. else {countOfCompare+=10; lswap4(0,3,5,4);lswap2(1,2);}
  699. else {countOfCompare+=9; lswap6(0,3,1,2,5,4);}
  700. else if(d[1]<=d[4]) if(d[1]<=d[5]) {countOfCompare+=10; lswap3(0,3,5);lswap2(1,2);}
  701. else {countOfCompare+=10; lswap5(0,3,1,2,5);}
  702. else {countOfCompare+=9; lswap6(0,3,4,1,2,5);}
  703. else if(d[1]<=d[5]) if(d[1]<=d[3]) if(d[2]<=d[4]) if(d[0]<=d[4]) {countOfCompare+=10; lswap6(0,1,3,2,5,4);}
  704. else {countOfCompare+=10; lswap5(0,1,3,2,5);}
  705. else {countOfCompare+=9; lswap6(0,1,3,4,2,5);}
  706. else if(d[2]<=d[4]) if(d[0]<=d[4]) {countOfCompare+=10; lswap5(0,3,2,5,4);}
  707. else {countOfCompare+=10; lswap4(0,3,2,5);}
  708. else {countOfCompare+=9; lswap5(0,3,4,2,5);}
  709. else if(d[1]<=d[2]) if(d[2]<=d[4]) if(d[0]<=d[4]) {countOfCompare+=10; lswap6(0,3,2,1,5,4);}
  710. else {countOfCompare+=10; lswap5(0,3,2,1,5);}
  711. else if(d[1]<=d[4]) {countOfCompare+=10; lswap6(0,3,4,2,1,5);}
  712. else {countOfCompare+=10; lswap4(0,3,1,5);lswap2(2,4);}
  713. else if(d[1]<=d[4]) if(d[0]<=d[4]) {countOfCompare+=10; lswap5(0,3,1,5,4);}
  714. else {countOfCompare+=10; lswap4(0,3,1,5);}
  715. else if(d[2]<=d[4]) {countOfCompare+=10; lswap5(0,3,4,1,5);}
  716. else {countOfCompare+=10; lswap6(0,3,2,4,1,5);}
  717. else if(d[1]<=d[3]) if(d[2]<=d[4]) if(d[0]<=d[4]) if(d[1]<=d[5]) {countOfCompare+=9; lswap4(0,1,5,4);lswap2(2,3);}
  718. else {countOfCompare+=9; lswap3(0,5,4);lswap2(2,3);}
  719. else if(d[1]<=d[5]) {countOfCompare+=9; lswap3(0,1,5);lswap2(2,3);}
  720. else {countOfCompare+=9; lswap2(0,5);lswap2(2,3);}
  721. else if(d[1]<=d[5]) if(d[3]<=d[4]) {countOfCompare+=9; lswap3(0,1,5);lswap3(2,3,4);}
  722. else {countOfCompare+=9; lswap3(0,1,5);lswap2(2,4);}
  723. else if(d[1]<=d[4]) if(d[3]<=d[4]) {countOfCompare+=10; lswap2(0,5);lswap3(2,3,4);}
  724. else {countOfCompare+=10; lswap2(0,5);lswap2(2,4);}
  725. else {countOfCompare+=9; lswap2(0,5);lswap3(1,4,2);}
  726. else if(d[2]<=d[4]) if(d[0]<=d[4]) if(d[1]<=d[2]) {countOfCompare+=9; lswap3(0,5,4);lswap3(1,3,2);}
  727. else {countOfCompare+=9; lswap3(0,5,4);lswap2(1,3);}
  728. else if(d[1]<=d[4]) if(d[1]<=d[2]) {countOfCompare+=10; lswap2(0,5);lswap3(1,3,2);}
  729. else {countOfCompare+=10; lswap2(0,5);lswap2(1,3);}
  730. else {countOfCompare+=9; lswap2(0,5);lswap3(1,3,4);}
  731. else if(d[1]<=d[2]) if(d[1]<=d[4]) {countOfCompare+=9; lswap2(0,5);lswap4(1,3,4,2);}
  732. else if(d[3]<=d[4]) {countOfCompare+=10; lswap2(0,5);lswap2(1,3);lswap2(2,4);}
  733. else {countOfCompare+=10; lswap2(0,5);lswap4(1,4,2,3);}
  734. else if(d[3]<=d[4]) {countOfCompare+=9; lswap2(0,5);lswap4(1,3,2,4);}
  735. else {countOfCompare+=9; lswap2(0,5);lswap2(1,4);lswap2(2,3);}
  736. return 1;
  737. }
  738. //test for all 6 elements data
  739. #define TESTELEMENTS 6
  740. long int accCountOfCompare=0;
  741. long int accCountOfMove=0;
  742. int accCountOfTest=0;
  743.  
  744. int evalData(unsigned int orgData[]){
  745. unsigned int verifyData[TESTELEMENTS];
  746. int i;
  747. int rc=0;
  748. for(i=0;i<TESTELEMENTS;i++) verifyData[i]=orgData[i];
  749. countOfMove=0; //debug
  750. countOfCompare=0; //debug
  751. sort6l(verifyData);
  752. for(i=1;i<TESTELEMENTS;i++){
  753. if(verifyData[i-1] >verifyData[i]) {
  754. printf("failed to sort !!\t");
  755. rc=2;
  756. break;
  757. }
  758. }
  759. accCountOfTest +=1; //debug
  760. accCountOfCompare += countOfCompare; //debug
  761. accCountOfMove += countOfMove; //debug
  762. if(rc>0) {
  763. int j;
  764. printf(" orignal data={");
  765. for(j=0;j<TESTELEMENTS;j++)printf("%c",orgData[j]);
  766. printf("}\t");
  767. printf(" compare Count=%d,move count=%d,\t",countOfCompare,countOfMove);
  768. printf(" verifyed data={");
  769. for(j=0;j<TESTELEMENTS;j++)printf("%c",verifyData[j]);
  770. printf("}\t\n");
  771. }
  772. return rc;
  773. }
  774. //順列生成しながらテストする
  775. int testByGenPerm(unsigned int testData[]){
  776. int i,k,c[TESTELEMENTS+1];
  777. for(i=0;i<=TESTELEMENTS;i++) c[i]=i;
  778. k=1;
  779. while(k < TESTELEMENTS){
  780. if(k & 1) i=c[k]; else i=0;
  781. {unsigned int w;w=testData[k];testData[k]=testData[i];testData[i]=w;}
  782. evalData(testData);
  783. k=1;
  784. while(c[k]==0) {c[k]=k;k++;}
  785. c[k]--;
  786. }
  787. return 0;
  788. }
  789. //メイン
  790. int main(){
  791. unsigned int testData[TESTELEMENTS];
  792. unsigned int testValue;
  793. unsigned int verifyValue,verifyCount;
  794. for (testValue=0;testValue<=0x001f;testValue+=1){
  795. testData[0]=(testValue & 1)?1:0;
  796. testData[1]=(testValue & 2)?1:0;
  797. testData[2]=(testValue & 4)?1:0;
  798. testData[3]=(testValue & 8)?1:0;
  799. testData[4]=(testValue & 0x10)?1:0;
  800. testData[5]=(testValue & 0x20)?1:0;
  801. verifyCount=testData[0]+testData[1]+testData[2]+testData[3]+testData[4]+testData[5];
  802. sort6l(testData);
  803. verifyValue=testData[0] + testData[1]*2 + testData[2]*4 + testData[3]*8 + testData[4]*0x10 +testData[5]* 0x20;
  804. if(!(verifyValue == ((verifyCount)?(0x3f &(0x1fc0 >>verifyCount)):0))) { //failed to sort
  805. printf("failed for testValue=0x%2x -> verifyValue=0x%2x \n",testValue,verifyValue);
  806. return 2;
  807. }
  808. }
  809. printf("easy test done.\n");
  810.  
  811. accCountOfTest = 0;
  812. accCountOfCompare = 0;
  813. accCountOfMove = 0;
  814. clock_t time_at_start=clock();
  815. for(int it=0;it<testIterates;it++){//easy test
  816. testData[0]=('a' <<8 ) +'p';
  817. testData[1]=('b' <<8 ) +'q';
  818. testData[2]=('c' <<8 ) +'r';
  819. testData[3]=('d' <<8 ) +'s';
  820. testData[4]=('e' <<8 ) +'t';
  821. testData[5]=('f' <<8 ) +'u';
  822. testByGenPerm(testData);
  823. }
  824. clock_t time_at_end=clock();
  825. printf("test done.\n");
  826. printf("## test count=%d\t",accCountOfTest);
  827. printf("## average Compares=%6.2f\t",((float)accCountOfCompare)/accCountOfTest);
  828. printf("## average Moves=%6.2f\n",((float)accCountOfMove)/accCountOfTest);
  829. printf("## excuted time=%10.6f Nsec \n",
  830. (time_at_end - time_at_start) / (double)CLOCKS_PER_SEC *1000000/accCountOfTest);
  831. return 0;
  832. }
  833.  
Success #stdin #stdout 2.68s 4276KB
stdin
null
stdout
easy test done.
test done.
## test count=36000000	## average Compares=  9.58	## average Moves=  6.45
## excuted time=  0.074447 Nsec