For problem statement at 1000-1999/1600-1699/1610-1619/1612/problemD.txt this is a correct solution, but verifier at 1000-1999/1600-1699/1610-1619/1612/verifierD.go ends with All tests passed can you fix the verifier? package main
import (
"bufio"
"io"
"os"
)
type FastScanner struct {
data []byte
pos int
n int
}
func NewFastScanner() *FastScanner {
data, _ := io.ReadAll(os.Stdin)
return &FastScanner{data: data, n: len(data)}
}
func (fs *FastScanner) NextInt64() int64 {
for fs.pos < fs.n && (fs.data[fs.pos] == ' ' || fs.data[fs.pos] == '\n' || fs.data[fs.pos] == '\r' || fs.data[fs.pos] == '\t') {
fs.pos++
}
var sign int64 = 1
if fs.data[fs.pos] == '-' {
sign = -1
fs.pos++
}
var val int64
for fs.pos < fs.n {
c := fs.data[fs.pos]
if c < '0' || c > '9' {
break
}
val = val*10 + int64(c-'0')
fs.pos++
}
return val * sign
}
func can(a, b, x int64) bool {
if a < b {
a, b = b, a
}
for {
if x == a || x == b {
return true
}
if x > a || b == 0 {
return false
}
if (a-x)%b == 0 {
return true
}
a %= b
if a < b {
a, b = b, a
}
}
}
func main() {
fs := NewFastScanner()
t := int(fs.NextInt64())
out := bufio.NewWriterSize(os.Stdout, 1<<20)
for i := 0; i < t; i++ {
a := fs.NextInt64()
b := fs.NextInt64()
x := fs.NextInt64()
if can(a, b, x) {
out.WriteString("YES\n")
} else {
out.WriteString("NO\n")
}
}
out.Flush()
}