← Home
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())
}