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"
"fmt"
"os"
)
func find(i int, next []int) int {
root := i
for next[root] != root {
root = next[root]
}
curr := i
for curr != root {
nxt := next[curr]
next[curr] = root
curr = nxt
}
return root
}
func digitSum(x int) int {
sum := 0
for x > 0 {
sum += x % 10
x /= 10
}
return sum
}
func main() {
reader := bufio.NewReader(os.Stdin)
writer := bufio.NewWriter(os.Stdout)
defer writer.Flush()
var t int
if _, err := fmt.Fscan(reader, &t); err != nil {
return
}
for tc := 0; tc < t; tc++ {
var n, q int
fmt.Fscan(reader, &n, &q)
a := make([]int, n+2)
next := make([]int, n+2)
for i := 1; i <= n; i++ {
fmt.Fscan(reader, &a[i])
next[i] = i
}
next[n+1] = n + 1
for i := 1; i <= n; i++ {
if a[i] <= 9 {
next[i] = i + 1
}
}
for i := 0; i < q; i++ {
var typeQuery int
fmt.Fscan(reader, &typeQuery)
if typeQuery == 1 {
var l, r int
fmt.Fscan(reader, &l, &r)
curr := find(l, next)
for curr <= r {
a[curr] = digitSum(a[curr])
if a[curr] <= 9 {
next[curr] = curr + 1
}
curr = find(curr+1, next)
}
} else {
var x int
fmt.Fscan(reader, &x)
fmt.Fprintln(writer, a[x])
}
}
}
}