← Home
For problem statement at 1000-1999/1300-1399/1340-1349/1348/problemC.txt this is a correct solution, but verifier at 1000-1999/1300-1399/1340-1349/1348/verifierC.go ends with All 100 tests passed can you fix the verifier? package main

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

func main() {
	reader := bufio.NewReader(os.Stdin)
	writer := bufio.NewWriter(os.Stdout)
	defer writer.Flush()

	var t int
	fmt.Fscan(reader, &t)

	for i := 0; i < t; i++ {
		var n, k int
		fmt.Fscan(reader, &n, &k)
		var s string
		fmt.Fscan(reader, &s)

		b := []byte(s)
		sort.Slice(b, func(i, j int) bool {
			return b[i] < b[j]
		})

		if b[0] != b[k-1] {
			fmt.Fprintln(writer, string(b[k-1]))
		} else {
			if k == n {
				fmt.Fprintln(writer, string(b[k-1]))
			} else if b[k] == b[n-1] {
				count := (n - k + k - 1) / k
				res := make([]byte, 1+count)
				res[0] = b[0]
				for j := 1; j <= count; j++ {
					res[j] = b[k]
				}
				fmt.Fprintln(writer, string(res))
			} else {
				fmt.Fprintln(writer, string(b[0])+string(b[k:]))
			}
		}
	}
}