For problem statement at 1000-1999/1700-1799/1730-1739/1730/problemC.txt this is a correct solution, but verifier at 1000-1999/1700-1799/1730-1739/1730/verifierC.go ends with All 100 tests passed can you fix the verifier? package main
import (
"bytes"
"io"
"os"
)
type FastScanner struct {
data []byte
idx int
n int
}
func NewFastScanner() *FastScanner {
data, _ := io.ReadAll(os.Stdin)
return &FastScanner{data: data, n: len(data)}
}
func (fs *FastScanner) skipSpaces() {
for fs.idx < fs.n {
b := fs.data[fs.idx]
if b > ' ' {
return
}
fs.idx++
}
}
func (fs *FastScanner) NextInt() int {
fs.skipSpaces()
sign := 1
if fs.data[fs.idx] == '-' {
sign = -1
fs.idx++
}
val := 0
for fs.idx < fs.n {
b := fs.data[fs.idx]
if b < '0' || b > '9' {
break
}
val = val*10 + int(b-'0')
fs.idx++
}
return val * sign
}
func (fs *FastScanner) NextString() string {
fs.skipSpaces()
start := fs.idx
for fs.idx < fs.n && fs.data[fs.idx] > ' ' {
fs.idx++
}
return string(fs.data[start:fs.idx])
}
func main() {
fs := NewFastScanner()
t := fs.NextInt()
var out bytes.Buffer
for tc := 0; tc < t; tc++ {
s := fs.NextString()
var cnt [10]int
mnLater := byte('9' + 1)
for i := len(s) - 1; i >= 0; i-- {
c := s[i]
if c > mnLater {
d := int(c - '0')
if d < 9 {
d++
}
cnt[d]++
} else {
cnt[int(c-'0')]++
}
if c < mnLater {
mnLater = c
}
}
ans := make([]byte, 0, len(s))
for d := 0; d < 10; d++ {
for cnt[d] > 0 {
ans = append(ans, byte('0'+d))
cnt[d]--
}
}
out.Write(ans)
if tc+1 < t {
out.WriteByte('\n')
}
}
os.Stdout.Write(out.Bytes())
}