For problem statement at 1000-1999/1300-1399/1330-1339/1333/problemD.txt this is a correct solution, but verifier at 1000-1999/1300-1399/1330-1339/1333/verifierD.go ends with case 15 failed: no output
input:
3 0
RRR
output:
exit status 1 can you fix the verifier? package main
import (
"bufio"
"os"
)
func main() {
in := bufio.NewReader(os.Stdin)
n := readInt(in)
k := readInt(in)
s := make([]byte, 0, n)
for {
b, err := in.ReadByte()
if err != nil {
break
}
if b == 'R' || b == 'L' {
s = append(s, b)
if len(s) == n {
break
}
}
}
var rounds [][]int
total := 0
for {
var r []int
for i := 0; i < n-1; i++ {
if s[i] == 'R' && s[i+1] == 'L' {
r = append(r, i+1)
}
}
if len(r) == 0 {
break
}
for _, idx := range r {
s[idx-1] = 'L'
s[idx] = 'R'
}
rounds = append(rounds, r)
total += len(r)
}
if k < len(rounds) || k > total {
out := bufio.NewWriter(os.Stdout)
out.WriteString("-1\n")
out.Flush()
return
}
extra := k - len(rounds)
out := bufio.NewWriter(os.Stdout)
defer out.Flush()
for _, r := range rounds {
for len(r) > 1 && extra > 0 {
out.WriteString("1 ")
writeInt(out, r[0])
out.WriteByte('\n')
r = r[1:]
extra--
}
writeInt(out, len(r))
for _, idx := range r {
out.WriteByte(' ')
writeInt(out, idx)
}
out.WriteByte('\n')
}
}
func readInt(in *bufio.Reader) int {
n := 0
started := false
for {
b, err := in.ReadByte()
if err != nil {
break
}
if b >= '0' && b <= '9' {
n = n*10 + int(b-'0')
started = true
} else if started {
break
}
}
return n
}
func writeInt(w *bufio.Writer, n int) {
if n == 0 {
w.WriteByte('0')
return
}
var buf [20]byte
i := len(buf)
for n > 0 {
i--
buf[i] = '0' + byte(n%10)
n /= 10
}
w.Write(buf[i:])
}