def try(left, right) mid1 = (left * 2 + right) / 3 mid2 = (left + 2 * right) / 3 STDOUT.puts "0 #{mid1}" STDOUT.flush d1 = STDIN.gets.to_i STDOUT.puts "0 #{mid2}" STDOUT.flush d2 = STDIN.gets.to_i if d2 < d1 [mid1, right] else [left, mid2] end end def try2(left, right) mid1 = (left * 2 + right) / 3 mid2 = (left + 2 * right) / 3 STDOUT.puts "#{mid1} #{Y}" STDOUT.flush d1 = STDIN.gets.to_i STDOUT.puts "#{mid2} #{Y}" STDOUT.flush d2 = STDIN.gets.to_i if d2 < d1 [mid1, right] else [left, mid2] end end left, right = -1, 10 ** 5 + 1 40.times do |i| left, right = try(left, right) STDERR.puts "#{left} #{right}" end Y = (left + right) / 2 STDOUT.puts "0 #{Y}" STDOUT.flush x = STDIN.gets.to_i STDOUT.puts "#{x} #{Y}" STDOUT.flush