← Home
For problem statement at 0-999/700-799/760-769/761/problemC.txt this is a correct solution, but verifier at 0-999/700-799/760-769/761/verifierC.go ends with All 200 tests passed. can you fix the verifier? package main

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

func main() {
	in := bufio.NewReader(os.Stdin)

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

	const INF = int(1e9)
	digit := make([]int, n)
	lower := make([]int, n)
	sym := make([]int, n)

	for i := 0; i < n; i++ {
		digit[i], lower[i], sym[i] = INF, INF, INF
		var s string
		fmt.Fscan(in, &s)
		for j := 0; j < m; j++ {
			cost := j
			if m-j < cost {
				cost = m - j
			}
			c := s[j]
			if c >= '0' && c <= '9' {
				if cost < digit[i] {
					digit[i] = cost
				}
			} else if c >= 'a' && c <= 'z' {
				if cost < lower[i] {
					lower[i] = cost
				}
			} else {
				if cost < sym[i] {
					sym[i] = cost
				}
			}
		}
	}

	ans := INF
	for i := 0; i < n; i++ {
		for j := 0; j < n; j++ {
			if j == i {
				continue
			}
			for k := 0; k < n; k++ {
				if k == i || k == j {
					continue
				}
				cur := digit[i] + lower[j] + sym[k]
				if cur < ans {
					ans = cur
				}
			}
		}
	}

	fmt.Println(ans)
}