← Home
For problem statement at 2000-2999/2000-2099/2040-2049/2048/problemD.txt this is a correct solution, but verifier at 2000-2999/2000-2099/2040-2049/2048/verifierD.go ends with All 151 tests passed can you fix the verifier? ```go
package main

import (
	"bufio"
	"os"
	"sort"
	"strconv"
)

func main() {
	scanner := bufio.NewScanner(os.Stdin)
	scanner.Split(bufio.ScanWords)
	readInt := func() int {
		scanner.Scan()
		x, _ := strconv.Atoi(scanner.Text())
		return x
	}
	t := readInt()
	out := bufio.NewWriter(os.Stdout)
	defer out.Flush()
	for ; t > 0; t-- {
		n := readInt()
		m := readInt()
		a := make([]int, n)
		for i := 0; i < n; i++ {
			a[i] = readInt()
		}
		b := make([]int, m)
		for i := 0; i < m; i++ {
			b[i] = readInt()
		}

		R := a[0]
		E := 0
		hard := []int{}
		for _, v := range b {
			if v <= R {
				E++
			} else {
				hard = append(hard, v)
			}
		}
		sort.Sort(sort.Reverse(sort.IntSlice(hard)))
		H := len(hard)

		above := []int{}
		for _, v := range a {
			if v > R {
				above = append(above, v)
			}
		}
		sort.Ints(above)

		Cvals := make([]int, H+1)
		for i := 1; i <= H; i++ {
			d := hard[i-1]
			idx := sort.SearchInts(above, d)
			Cvals[i] = len(above) - idx
		}

		ans := make([]int, m)
		for k := 1; k <= m; k++ {
			C := m / k
			if E >= C*k {
				ans[k-1] = C
			} else {
				h := C*k - E
				t := (h + k - 1) / k
				sumC := 0
				for j := 0; j < t; j++ {
					sumC += Cvals[h-j*k]
				}
				ans[k-1] = C + sumC
			}
		}
		for i := 0; i < m; i++ {
			if i > 0 {
				out.WriteByte(' ')
			}
			out.WriteString(strconv.Itoa(ans[i]))
		}
		out.WriteByte('\n')
	}
}
```