For problem statement at 1000-1999/1500-1599/1500-1509/1508/problemA.txt this is a correct solution, but verifier at 1000-1999/1500-1599/1500-1509/1508/verifierA.go ends with case 1 failed: expected 110100101010111110 got 10100101010111110
input:
1
6
101000100111
100010010110
100110000010
exit status 1 can you fix the verifier? ```go
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
reader := bufio.NewReader(os.Stdin)
writer := bufio.NewWriter(os.Stdout)
defer writer.Flush()
var t int
fmt.Fscan(reader, &t)
for i := 0; i < t; i++ {
var n int
fmt.Fscan(reader, &n)
s := make([]string, 3)
for j := 0; j < 3; j++ {
fmt.Fscan(reader, &s[j])
}
zeros := make([]int, 0, 3)
ones := make([]int, 0, 3)
for j := 0; j < 3; j++ {
cnt0 := 0
for _, c := range s[j] {
if c == '0' {
cnt0++
}
}
if cnt0 >= n {
zeros = append(zeros, j)
} else {
ones = append(ones, j)
}
}
if len(zeros) >= 2 {
solveMerge(writer, n, s[zeros[0]], s[zeros[1]], '0')
} else {
solveMerge(writer, n, s[ones[0]], s[ones[1]], '1')
}
}
}
func solveMerge(w *bufio.Writer, n int, a, b string, common byte) {
pA, pB := 0, 0
other := byte('1')
if common == '1' {
other = '0'
}
for k := 0; k < n; k++ {
cntA := 0
for a[pA] != common {
cntA++
pA++
}
cntB := 0
for b[pB] != common {
cntB++
pB++
}
mx := cntA
if cntB > cntA {
mx = cntB
}
for x := 0; x < mx; x++ {
w.WriteByte(other)
}
w.WriteByte(common)
pA++
pB++
}
w.WriteString(a[pA:])
w.WriteString(b[pB:])
w.WriteByte('\n')
}
```