← Home
For problem statement at 1000-1999/1300-1399/1370-1379/1371/problemE1.txt this is a correct solution, but verifier at 1000-1999/1300-1399/1370-1379/1371/verifierE1.go ends with All tests passed can you fix the verifier? ```go
package main

import (
	"fmt"
	"sort"
)

func max(a, b int) int {
	if a > b {
		return a
	}
	return b
}

func main() {
	var n, p int
	fmt.Scan(&n, &p)
	a := make([]int, n)
	maxa := 0
	for i := 0; i < n; i++ {
		fmt.Scan(&a[i])
		if a[i] > maxa {
			maxa = a[i]
		}
	}
	minx := max(1, maxa-n+1)
	maxx := maxa
	var good []int
	for x := minx; x <= maxx; x++ {
		mlist := make([]int, n)
		skip := false
		for i := 0; i < n; i++ {
			m := max(1, a[i]-x+1)
			if m > n {
				skip = true
				break
			}
			mlist[i] = m
		}
		if skip {
			continue
		}
		sort.Sort(sort.Reverse(sort.IntSlice(mlist)))
		var prod int64 = 1
		ok := true
		for k := 1; k <= n; k++ {
			sk := n - mlist[k-1] + 1
			term := sk - k + 1
			if term <= 0 {
				ok = false
				break
			}
			prod = (prod * (int64(term) % int64(p))) % int64(p)
		}
		if ok && prod != 0 {
			good = append(good, x)
		}
	}
	fmt.Println(len(good))
	for i, v := range good {
		if i > 0 {
			fmt.Print(" ")
		}
		fmt.Print(v)
	}
	if len(good) > 0 {
		fmt.Println()
	}
}
```