+ n = loop.with_index do |_, i|
return [?-] if a * 2 == b
c, d = from_left_child(a, b)
a, b = from_right_child(a, b)
a, b = to_right_child(c, d)
+ n = loop.with_index do |_, i|
return [?-] if a * 2 == b
c, d = from_left_child(a, b)
a, b = to_left_child *from_right_child(a, b)
- (1..i).inject([a, b]){ |(c, d), _| c * 2 > d ? to_left_child(c, d) : to_right_child(c, d) }
+ (1..n).inject([a, b]){ |(c, d), _| c * 2 > d ? to_left_child(c, d) : to_right_child(c, d) }
x, y = gets.scan(/\d+/).map(&:to_i)