For problem statement at 1000-1999/1800-1899/1810-1819/1814/problemC.txt this is a correct solution, but verifier at 1000-1999/1800-1899/1810-1819/1814/verifierC.go ends with All tests passed can you fix the verifier? ```go
package main
import (
"bufio"
"fmt"
"os"
"sort"
)
type FastScanner struct {
r *bufio.Reader
}
func NewFastScanner() *FastScanner {
return &FastScanner{r: bufio.NewReader(os.Stdin)}
}
func (fs *FastScanner) NextInt() int {
sign := 1
val := 0
c, err := fs.r.ReadByte()
for (c < '0' || c > '9') && c != '-' {
if err != nil {
return 0
}
c, err = fs.r.ReadByte()
}
if c == '-' {
sign = -1
c, err = fs.r.ReadByte()
}
for c >= '0' && c <= '9' {
val = val*10 + int(c-'0')
c, err = fs.r.ReadByte()
if err != nil {
break
}
}
return sign * val
}
type Item struct {
r int
idx int
}
func main() {
in := NewFastScanner()
out := bufio.NewWriter(os.Stdout)
defer out.Flush()
t := in.NextInt()
for ; t > 0; t-- {
n := in.NextInt()
s1 := in.NextInt()
s2 := in.NextInt()
items := make([]Item, n)
for i := 0; i < n; i++ {
items[i] = Item{r: in.NextInt(), idx: i + 1}
}
sort.Slice(items, func(i, j int) bool {
if items[i].r == items[j].r {
return items[i].idx < items[j].idx
}
return items[i].r > items[j].r
})
a := make([]int, 0)
b := make([]int, 0)
for _, it := range items {
w1 := int64(s1) * int64(len(a)+1)
w2 := int64(s2) * int64(len(b)+1)
if w1 <= w2 {
a = append(a, it.idx)
} else {
b = append(b, it.idx)
}
}
fmt.Fprint(out, len(a))
for _, v := range a {
fmt.Fprint(out, " ", v)
}
fmt.Fprintln(out)
fmt.Fprint(out, len(b))
for _, v := range b {
fmt.Fprint(out, " ", v)
}
fmt.Fprintln(out)
}
}
```