fork(2) download
  1. require 'minitest/autorun'
  2.  
  3. F=
  4. ->m,n{[[m,n],[m,n.reverse],[n,m],[n,m.reverse]].map{|u,d|[(0..l=u.size).find{|i|(d.to_i(2)<<i)&u.to_i(2)<1}+d.size,l].max}.min}
  5.  
  6. describe F do
  7. def test_1
  8. assert_equal 1, F['0', '0']
  9. end
  10.  
  11. def test_2
  12. assert_equal 1, F['1', '0']
  13. end
  14.  
  15. def test_3
  16. assert_equal 2, F['1', '1']
  17. end
  18.  
  19. def test_4
  20. assert_equal 5, F['11', '111']
  21. end
  22.  
  23. def test_5
  24. assert_equal 5, F['010', '0110']
  25. end
  26.  
  27. def test_6
  28. assert_equal 5, F['0010', '111']
  29. end
  30.  
  31. def test_7
  32. assert_equal 5, F['0010', '10111']
  33. end
  34.  
  35. def test_8
  36. assert_equal 6, F['00010', '11011']
  37. end
  38.  
  39. def test_9
  40. assert_equal 5, F['01010', '10101']
  41. end
  42.  
  43. def test_a
  44. assert_equal 6, F['1001', '100001']
  45. end
  46.  
  47. def test_b
  48. assert_equal 14, F['1110001100001', '1100100101']
  49. end
  50.  
  51. def test_c
  52. assert_equal 16, F['001101010000101', '100010110000']
  53. end
  54.  
  55. def test_d
  56. assert_equal 21, F['0010110111100', '001011010101001000000']
  57. end
  58.  
  59. def test_e
  60. assert_equal 28, F['0010110111100', '001011010101001001100']
  61. end
  62.  
  63. def test_f
  64. assert_equal 27, F['100010100100111101', '11100101100010100100000001']
  65. end
  66.  
  67. def test_new_1
  68. assert_equal 5, F['0010', '10111']
  69. end
  70.  
  71. def test_new_2
  72. assert_equal 5, F['0100', '10111']
  73. end
  74.  
  75. def test_new_3
  76. assert_equal 5, F['0010', '11101']
  77. end
  78.  
  79. def test_new_4
  80. assert_equal 5, F['0100', '11101']
  81. end
  82.  
  83. def test_new_5
  84. assert_equal 5, F['10111', '0010']
  85. end
  86.  
  87. def test_new_6
  88. assert_equal 5, F['10111', '0100']
  89. end
  90.  
  91. def test_new_7
  92. assert_equal 5, F['11101', '0010']
  93. end
  94.  
  95. def test_new_8
  96. assert_equal 5, F['11101', '0100']
  97. end
  98. end
  99.  
Success #stdin #stdout 0.06s 8536KB
stdin
Standard input is empty
stdout
Run options: --seed 8848

# Running tests:

.......................

Finished tests in 0.002173s, 10582.9406 tests/s, 10582.9406 assertions/s.

23 tests, 23 assertions, 0 failures, 0 errors, 0 skips