← Home
For problem statement at 1000-1999/1100-1199/1180-1189/1181/problemB.txt this is a correct solution, but verifier at 1000-1999/1100-1199/1180-1189/1181/verifierB.go ends with All tests passed can you fix the verifier? ```go
package main

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

func addStrings(a, b string) string {
	n, m := len(a), len(b)
	maxLen := n
	if m > maxLen {
		maxLen = m
	}
	res := make([]byte, maxLen+1)
	i, j, k := n-1, m-1, maxLen
	carry := 0
	for i >= 0 || j >= 0 || carry > 0 {
		sum := carry
		if i >= 0 {
			sum += int(a[i] - '0')
			i--
		}
		if j >= 0 {
			sum += int(b[j] - '0')
			j--
		}
		res[k] = byte(sum%10) + '0'
		carry = sum / 10
		k--
	}
	return string(res[k+1:])
}

func addSplit(s string, idx int) string {
	return addStrings(s[:idx], s[idx:])
}

func lessNum(a, b string) bool {
	if len(a) != len(b) {
		return len(a) < len(b)
	}
	return a < b
}

func main() {
	in := bufio.NewReaderSize(os.Stdin, 1<<20)
	var l int
	var s string
	fmt.Fscan(in, &l, &s)

	leftStart := l / 2
	rightStart := l / 2
	if l%2 == 1 {
		rightStart = l/2 + 1
	}

	leftIdx := -1
	for i := leftStart; i >= 1; i-- {
		if s[i] != '0' {
			leftIdx = i
			break
		}
	}

	rightIdx := -1
	for i := rightStart; i < l; i++ {
		if s[i] != '0' {
			rightIdx = i
			break
		}
	}

	ans := ""
	if leftIdx != -1 {
		ans = addSplit(s, leftIdx)
	}
	if rightIdx != -1 && rightIdx != leftIdx {
		cand := addSplit(s, rightIdx)
		if ans == "" || lessNum(cand, ans) {
			ans = cand
		}
	}

	out := bufio.NewWriterSize(os.Stdout, 1<<20)
	fmt.Fprint(out, ans)
	out.Flush()
}
```