← Home
For problem statement at 1000-1999/1500-1599/1550-1559/1552/problemE.txt this is a correct solution, but verifier at 1000-1999/1500-1599/1550-1559/1552/verifierE.go ends with case 2: runtime error: exit status 2
panic: runtime error: integer divide by zero

goroutine 1 [running]:
main.main()
	/tmp/build-226367332/solution.go:27 +0x898


exit status 1 can you fix the verifier? ```go
package main

import (
	"bufio"
	"fmt"
	"os"
)

func main() {
	reader := bufio.NewReader(os.Stdin)
	var n, k int
	if _, err := fmt.Fscan(reader, &n, &k); err != nil {
		return
	}

	pos := make([][]int, n+1)
	for i := 1; i <= n; i++ {
		pos[i] = make([]int, 0, k)
	}

	for i := 1; i <= n*k; i++ {
		var c int
		fmt.Fscan(reader, &c)
		pos[c] = append(pos[c], i)
	}

	L := (n + k - 2) / (k - 1)
	E := make([]int, L)

	idx := make([]int, n+1)
	active := make([]bool, n+1)
	for i := 1; i <= n; i++ {
		active[i] = true
	}

	ansA := make([]int, n+1)
	ansB := make([]int, n+1)

	count := n
	for count > 0 {
		minB := 1000000000
		bestC := -1

		for c := 1; c <= n; c++ {
			if active[c] {
				b := pos[c][idx[c]+1]
				if b < minB {
					minB = b
					bestC = c
				}
			}
		}

		a := pos[bestC][idx[bestC]]

		bestJ := -1
		maxE := -1
		for j := 0; j < L; j++ {
			if E[j] < a && E[j] > maxE {
				maxE = E[j]
				bestJ = j
			}
		}

		if bestJ != -1 {
			ansA[bestC] = a
			ansB[bestC] = minB
			E[bestJ] = minB
			active[bestC] = false
			count--
		} else {
			idx[bestC]++
		}
	}

	writer := bufio.NewWriter(os.Stdout)
	for i := 1; i <= n; i++ {
		fmt.Fprintf(writer, "%d %d\n", ansA[i], ansB[i])
	}
	writer.Flush()
}
```