For problem statement at 1000-1999/1800-1899/1800-1809/1801/problemC.txt this is a correct solution, but verifier at 1000-1999/1800-1899/1800-1809/1801/verifierC.go ends with All 100 tests passed can you fix the verifier? ```go
package main
import (
"bufio"
"fmt"
"os"
"sort"
"strconv"
)
type Album struct {
maxVal int
records []int
}
func main() {
const maxCapacity = 1024 * 1024
buf := make([]byte, maxCapacity)
scanner := bufio.NewScanner(os.Stdin)
scanner.Buffer(buf, maxCapacity)
scanner.Split(bufio.ScanWords)
writer := bufio.NewWriter(os.Stdout)
defer writer.Flush()
readInt := func() int {
scanner.Scan()
val, _ := strconv.Atoi(scanner.Text())
return val
}
if !scanner.Scan() {
return
}
t, _ := strconv.Atoi(scanner.Text())
for i := 0; i < t; i++ {
n := readInt()
albums := make([]Album, n)
for j := 0; j < n; j++ {
k := readInt()
var recs []int
if k > 0 {
recs = make([]int, 0, 8)
}
curLocalMax := 0
for m := 0; m < k; m++ {
val := readInt()
if val > curLocalMax {
curLocalMax = val
recs = append(recs, val)
}
}
albums[j] = Album{maxVal: curLocalMax, records: recs}
}
sort.Slice(albums, func(a, b int) bool {
return albums[a].maxVal < albums[b].maxVal
})
totalImpression := 0
curGlobalMax := 0
idx := 0
for idx < n {
groupMax := albums[idx].maxVal
end := idx
for end < n && albums[end].maxVal == groupMax {
end++
}
maxGain := 0
for k := idx; k < end; k++ {
recs := albums[k].records
// Find number of elements in recs that are strictly greater than curGlobalMax
// recs is sorted strictly increasing
p := sort.Search(len(recs), func(x int) bool {
return recs[x] > curGlobalMax
})
gain := len(recs) - p
if gain > maxGain {
maxGain = gain
}
}
totalImpression += maxGain
curGlobalMax = groupMax
idx = end
}
fmt.Fprintln(writer, totalImpression)
}
}
```