← Home
For problem statement at 0-999/700-799/770-779/774/problemE.txt this is a correct solution, but verifier at 0-999/700-799/770-779/774/verifierE.go ends with All tests passed can you fix the verifier? package main

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

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

	s, _ := reader.ReadString('\n')
	s = strings.TrimSpace(s)

	line, _ := reader.ReadString('\n')
	line = strings.TrimSpace(line)
	m, _ := strconv.ParseInt(line, 10, 64)

	n := len(s)
	pow10 := make([]int64, n+1)
	pref := make([]int64, n+1)

	pow10[0] = 1 % m
	for i := 0; i < n; i++ {
		pow10[i+1] = (pow10[i] * 10) % m
		pref[i+1] = (pref[i]*10 + int64(s[i]-'0')) % m
	}

	total := pref[n]
	ans := m - 1

	for i := 0; i < n; i++ {
		if s[i] == '0' {
			continue
		}
		suffix := total - (pref[i]*pow10[n-i])%m
		if suffix < 0 {
			suffix += m
		}
		rem := (suffix*pow10[i] + pref[i]) % m
		if rem < ans {
			ans = rem
			if ans == 0 {
				break
			}
		}
	}

	fmt.Fprint(writer, ans)
}