For problem statement at 1000-1999/1600-1699/1690-1699/1698/problemD.txt this is a correct solution, but verifier at 1000-1999/1600-1699/1690-1699/1698/verifierD.go ends with Test 1 failed
Input:1
3
Expected:1
Got:? 1 2
exit status 1 can you fix the verifier? package main
import (
"bufio"
"fmt"
"os"
)
func main() {
in := bufio.NewReader(os.Stdin)
out := bufio.NewWriter(os.Stdout)
defer out.Flush()
var t int
if _, err := fmt.Fscan(in, &t); err != nil {
return
}
for ; t > 0; t-- {
var n int
if _, err := fmt.Fscan(in, &n); err != nil {
return
}
if n == -1 {
return
}
l, r := 1, n
for l < r {
m := (l + r) / 2
fmt.Fprintf(out, "? %d %d\n", l, m)
out.Flush()
cnt := 0
for i := 0; i < m-l+1; i++ {
var x int
if _, err := fmt.Fscan(in, &x); err != nil {
return
}
if x == -1 {
return
}
if x >= l && x <= m {
cnt++
}
}
if cnt%2 == 1 {
r = m
} else {
l = m + 1
}
}
fmt.Fprintf(out, "! %d\n", l)
out.Flush()
}
}