← Home
For problem statement at 0-999/100-199/120-129/124/problemB.txt this is a correct solution, but verifier at 0-999/100-199/120-129/124/verifierB.go ends with All 100 tests passed! can you fix the verifier? package main

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

func nextPermutation(a []int) bool {
	i := len(a) - 2
	for i >= 0 && a[i] >= a[i+1] {
		i--
	}
	if i < 0 {
		return false
	}
	j := len(a) - 1
	for a[j] <= a[i] {
		j--
	}
	a[i], a[j] = a[j], a[i]
	for l, r := i+1, len(a)-1; l < r; l, r = l+1, r-1 {
		a[l], a[r] = a[r], a[l]
	}
	return true
}

func main() {
	in := bufio.NewReader(os.Stdin)
	var n, k int
	fmt.Fscan(in, &n, &k)
	s := make([]string, n)
	for i := 0; i < n; i++ {
		fmt.Fscan(in, &s[i])
	}

	p := make([]int, k)
	for i := 0; i < k; i++ {
		p[i] = i
	}

	ans := int(1<<31 - 1)

	for {
		mn := int(1<<31 - 1)
		mx := -1
		for i := 0; i < n; i++ {
			v := 0
			for _, idx := range p {
				v = v*10 + int(s[i][idx]-'0')
			}
			if v < mn {
				mn = v
			}
			if v > mx {
				mx = v
			}
		}
		if mx-mn < ans {
			ans = mx - mn
		}
		if !nextPermutation(p) {
			break
		}
	}

	fmt.Println(ans)
}