← Home
For problem statement at 0-999/0-99/0-9/5/problemB.txt this is a correct solution, but verifier at 0-999/0-99/0-9/5/verifierB.go ends with case 3 failed: expected:
**********************
*  4yi53gyks41jmwd28  *
*101 993e0rzwii32yld3*
*       9w37ih       *
* a5u51btwrg6jriu9sx *
*     icljkrq9e       *
**********************
got:
**********************
* 4yi53gyks41jmwd28  *
*101 993e0rzwii32yld3*
*       9w37ih       *
* a5u51btwrg6jriu9sx *
*      icljkrq9e     *
**********************
input:
4yi53gyks41jmwd28
101 993e0rzwii32yld3
9w37ih
a5u51btwrg6jriu9sx
icljkrq9e
exit status 1 can you fix the verifier? package main

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

func main() {
	scanner := bufio.NewScanner(os.Stdin)
	var lines []string
	maxLen := 0

	for scanner.Scan() {
		line := scanner.Text()
		lines = append(lines, line)
		if len(line) > maxLen {
			maxLen = len(line)
		}
	}

	border := strings.Repeat("*", maxLen+2)
	fmt.Println(border)

	favorLeft := true
	for _, line := range lines {
		diff := maxLen - len(line)
		var leftPad, rightPad int
		if diff%2 == 0 {
			leftPad = diff / 2
			rightPad = diff / 2
		} else {
			if favorLeft {
				leftPad = diff / 2
				rightPad = diff - leftPad
				favorLeft = false
			} else {
				leftPad = diff/2 + 1
				rightPad = diff - leftPad
				favorLeft = true
			}
		}
		fmt.Printf("*%s%s%s*\n", strings.Repeat(" ", leftPad), line, strings.Repeat(" ", rightPad))
	}

	fmt.Println(border)
}