For problem statement at 1000-1999/1200-1299/1290-1299/1290/problemD.txt this is a correct solution, but verifier at 1000-1999/1200-1299/1290-1299/1290/verifierD.go ends with Problem D is interactive and cannot be automatically verified. can you fix the verifier? package main
import (
"fmt"
)
func main() {
var n, k int
fmt.Scan(&n, &k)
if n == 1 {
fmt.Println("! 1")
return
}
B := k / 2
if B == 0 {
B = 1
}
m := n / B
paths := make([][]int, m/2)
for i := 0; i < m/2; i++ {
path := make([]int, m)
for j := 0; j < m; j++ {
if j == 0 {
path[j] = i
} else if j%2 == 1 {
path[j] = (i + (j+1)/2) % m
} else {
path[j] = (i - j/2%m + m) % m
}
}
paths[i] = path
}
isDup := make([]bool, n)
for i := 0; i < m/2; i++ {
fmt.Println("R")
for _, v := range paths[i] {
for j := 0; j < B; j++ {
element := v*B + j
if !isDup[element] {
fmt.Printf("? %d\n", element+1)
var ans string
fmt.Scan(&ans)
if ans == "Y" {
isDup[element] = true
}
}
}
}
}
distinct := 0
for i := 0; i < n; i++ {
if !isDup[i] {
distinct++
}
}
fmt.Printf("! %d\n", distinct)
}