← Home
For problem statement at 1000-1999/1300-1399/1300-1309/1304/problemB.txt this is a correct solution, but verifier at 1000-1999/1300-1399/1300-1309/1304/verifierB.go ends with All tests passed can you fix the verifier? package main

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

func reverse(s string) string {
	b := []byte(s)
	for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {
		b[i], b[j] = b[j], b[i]
	}
	return string(b)
}

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

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

	arr := make([]string, n)
	set := make(map[string]bool, n)
	for i := 0; i < n; i++ {
		fmt.Fscan(in, &arr[i])
		set[arr[i]] = true
	}

	left := make([]string, 0)
	right := make([]string, 0)
	mid := ""

	for _, s := range arr {
		rs := reverse(s)
		if s == rs {
			if mid == "" {
				mid = s
			}
		} else if set[rs] && s < rs {
			left = append(left, s)
			right = append(right, rs)
		}
	}

	var b strings.Builder
	for _, s := range left {
		b.WriteString(s)
	}
	b.WriteString(mid)
	for i := len(right) - 1; i >= 0; i-- {
		b.WriteString(right[i])
	}

	ans := b.String()
	fmt.Fprintln(out, len(ans))
	fmt.Fprintln(out, ans)
}