l = 9 r = 1000000001 c = 1 puts "? 100" STDOUT.flush ans = gets.to_i if ans < 0 loop{ puts "? 0" STDOUT.flush ans = gets.to_i if ans == 0 puts "! #{c}" STDOUT.flush break end c += 1 } elsif ans == 0 puts "! 100" STDOUT.flush else loop{ y = (l + r) / 2 puts "? #{[y - c,0].max}" STDOUT.flush ans = gets.to_i if ans == 0 puts "! #{y}" STDOUT.flush break elsif ans > 0 l = y else r = y end c += 1 } end