For problem statement at 1000-1999/1700-1799/1790-1799/1791/problemF.txt this is a correct solution, but verifier at 1000-1999/1700-1799/1790-1799/1791/verifierF.go ends with All tests passed can you fix the verifier? package main
import (
"bufio"
"bytes"
"os"
)
type FastScanner struct {
r *bufio.Reader
}
func NewFastScanner() *FastScanner {
return &FastScanner{r: bufio.NewReaderSize(os.Stdin, 1<<20)}
}
func (fs *FastScanner) NextInt() int {
sign, val := 1, 0
c, err := fs.r.ReadByte()
for (c < '0' || c > '9') && c != '-' {
c, err = fs.r.ReadByte()
if err != nil {
return 0
}
}
if c == '-' {
sign = -1
c, _ = fs.r.ReadByte()
}
for c >= '0' && c <= '9' {
val = val*10 + int(c-'0')
c, err = fs.r.ReadByte()
if err != nil {
break
}
}
if err == nil {
_ = fs.r.UnreadByte()
}
return sign * val
}
func sumDigits(x int) int {
s := 0
for x > 0 {
s += x % 10
x /= 10
}
return s
}
func main() {
fs := NewFastScanner()
var out bytes.Buffer
t := fs.NextInt()
for ; t > 0; t-- {
n, q := fs.NextInt(), fs.NextInt()
a := make([]int, n+2)
parent := make([]int, n+2)
for i := 1; i <= n; i++ {
a[i] = fs.NextInt()
}
parent[n+1] = n + 1
for i := n; i >= 1; i-- {
if a[i] > 9 {
parent[i] = i
} else {
parent[i] = i + 1
}
}
var find func(int) int
find = func(x int) int {
if parent[x] == x {
return x
}
parent[x] = find(parent[x])
return parent[x]
}
for ; q > 0; q-- {
typ := fs.NextInt()
if typ == 1 {
l, r := fs.NextInt(), fs.NextInt()
for i := find(l); i <= r; i = find(i + 1) {
a[i] = sumDigits(a[i])
if a[i] <= 9 {
parent[i] = find(i + 1)
}
}
} else {
x := fs.NextInt()
out.WriteString(itoa(a[x]))
out.WriteByte('\n')
}
}
}
w := bufio.NewWriterSize(os.Stdout, 1<<20)
w.Write(out.Bytes())
w.Flush()
}
func itoa(x int) string {
if x == 0 {
return "0"
}
var buf [20]byte
i := len(buf)
for x > 0 {
i--
buf[i] = byte('0' + x%10)
x /= 10
}
return string(buf[i:])
}