package main import ( "bufio" "fmt" "os" "strconv" ) func main() { solve() } func ask(x int) int { fmt.Println("?", x) var y int y = nextInt() return y } func solve() { lb := -1 ub := 1000000000 for i := 0; i < 100; i++ { mid := (lb + ub) / 2 ans := ask(mid) if ans == -1 { ub = mid - 1 } if ans == 1 { lb = mid - 1 } if ans == 0 { fmt.Println("!", ans+i) break } } } var sc = bufio.NewScanner(os.Stdin) func nextLine() string { sc.Scan() return sc.Text() } func nextInt() int { i, _ := strconv.ParseInt(nextLine(), 10, 64) return int(i) }