package main import "fmt" func main() { solve() } func ask(x int) int { fmt.Println("?", x) var y int fmt.Scan(&y) 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("!", mid+i) break } } }