← Home
For problem statement at 0-999/600-699/620-629/621/problemE.txt this is a correct solution, but verifier at 0-999/600-699/620-629/621/verifierE.go ends with All tests passed can you fix the verifier?  ```go
package main

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

const MOD int64 = 1000000007

func main() {
    scanner := bufio.NewScanner(os.Stdin)
    scanner.Split(bufio.ScanWords)

    n := readInt(scanner)
    b := readInt(scanner)
    k := readInt(scanner)
    x := readInt(scanner)

    count := make([]int64, 10)
    for i := 0; i < n; i++ {
        d := readInt(scanner)
        count[d]++
    }

    size := x
    T := make([][]int64, size)
    for i := range T {
        T[i] = make([]int64, size)
    }

    for oldR := 0; oldR < size; oldR++ {
        for d := 1; d <= 9; d++ {
            if count[d] == 0 {
                continue
            }
            newR := (oldR*10 + d) % size
            T[newR][oldR] = (T[newR][oldR] + count[d]) % MOD
        }
    }

    Tb := matrixPower(T, int64(b), size)
    fmt.Println(Tb[k][0] % MOD)
}

func readInt(scanner *bufio.Scanner) int {
    scanner.Scan()
    res := 0
    for _, b := range scanner.Bytes() {
        res = res*10 + int(b-'0')
    }
    return res
}

func multiply(A, B [][]int64, size int) [][]int64 {
    C := make([][]int64, size)
    for i := range C {
        C[i] = make([]int64, size)
    }

    for i := 0; i < size; i++ {
        for k := 0; k < size; k++ {
            if A[i][k] == 0 {
                continue
            }
            for j := 0; j < size; j++ {
                C[i][j] = (C[i][j] + A[i][k]*B[k][j]) % MOD
            }
        }
    }
    return C
}

func matrixPower(M [][]int64, power int64, size int) [][]int64 {
    result := make([][]int64, size)
    for i := range result {
        result[i] = make([]int64, size)
        result[i][i] = 1
    }

    base := M
    for power > 0 {
        if power&1 == 1 {
            result = multiply(result, base, size)
        }
        base = multiply(base, base, size)
        power >>= 1
    }
    return result
}
```