← 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 All 9 tests passed can you fix the verifier? package main

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

func main() {
	in := bufio.NewReaderSize(os.Stdin, 1<<20)
	out := bufio.NewWriterSize(os.Stdout, 1<<20)
	defer out.Flush()

	var n, k int
	fmt.Fscan(in, &n, &k)

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

	m := (n + (k - 2)) / (k - 1)

	ansL := make([]int, n+1)
	ansR := make([]int, n+1)

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

	for t := 1; t <= k-1 && len(remaining) > 0; t++ {
		sort.Slice(remaining, func(i, j int) bool {
			return pos[remaining[i]][t] < pos[remaining[j]][t]
		})
		cnt := m
		if cnt > len(remaining) {
			cnt = len(remaining)
		}
		for i := 0; i < cnt; i++ {
			c := remaining[i]
			ansL[c] = pos[c][t-1]
			ansR[c] = pos[c][t]
		}
		remaining = remaining[cnt:]
	}

	for i := 1; i <= n; i++ {
		fmt.Fprintln(out, ansL[i], ansR[i])
	}
}