← Home
```go
package main

import (
	"bufio"
	"io"
	"os"
)

func main() {
	data, _ := io.ReadAll(os.Stdin)
	p := 0
	nextInt := func() int {
		for p < len(data) && data[p] <= ' ' {
			p++
		}
		sign := 1
		if p < len(data) && (data[p] == '-' || data[p] == '+') {
			if data[p] == '-' {
				sign = -1
			}
			p++
		}
		val := 0
		for p < len(data) && data[p] > ' ' {
			val = val*10 + int(data[p]-'0')
			p++
		}
		return val * sign
	}
	nextBytes := func() []byte {
		for p < len(data) && data[p] <= ' ' {
			p++
		}
		start := p
		for p < len(data) && data[p] > ' ' {
			p++
		}
		return data[start:p]
	}

	out := bufio.NewWriter(os.Stdout)
	defer out.Flush()

	t := nextInt()
	for ; t > 0; t-- {
		_ = nextInt()
		s := nextBytes()
		var sum int64 = 0
		for i := 0; i < len(s); i++ {
			sum += int64(s[i] - '0')
		}
		var carry int64 = 0
		res := make([]byte, 0, len(s)+10)
		for r := 0; r < len(s); r++ {
			col := sum + carry
			d := byte(col % 10)
			carry = col / 10
			res = append(res, byte('0')+d)
			sum -= int64(s[len(s)-1-r] - '0')
		}
		for carry > 0 {
			res = append(res, byte('0')+byte(carry%10))
			carry /= 10
		}
		for i, j := 0, len(res)-1; i < j; i, j = i+1, j-1 {
			res[i], res[j] = res[j], res[i]
		}
		k := 0
		for k < len(res)-1 && res[k] == '0' {
			k++
		}
		out.Write(res[k:])
		out.WriteByte('\n')
	}
}
```