← Home
```go
package main

import (
	"fmt"
	"io"
	"os"
)

func main() {
	buf, _ := io.ReadAll(os.Stdin)
	pos := 0

	readInt := func() int {
		for pos < len(buf) && (buf[pos] < '0' || buf[pos] > '9') {
			pos++
		}
		if pos >= len(buf) {
			return 0
		}
		res := 0
		for pos < len(buf) && buf[pos] >= '0' && buf[pos] <= '9' {
			res = res*10 + int(buf[pos]-'0')
			pos++
		}
		return res
	}

	n := readInt()
	if n == 0 {
		return
	}

	a := make([]int, n)
	S := 0
	for i := 0; i < n; i++ {
		a[i] = readInt()
		S += a[i]
	}

	MOD := int64(998244353)

	inv := make([]int64, S+1)
	if S > 0 {
		inv[1] = 1
		for i := 2; i <= S; i++ {
			inv[i] = (MOD - (MOD / int64(i))) * inv[MOD%int64(i)] % MOD
		}
	}

	g := make([]int64, S+1)
	g[0] = 0
	for x := 1; x < S; x++ {
		term1 := (int64(x) * int64(n-1)) % MOD
		term2 := inv[S-x]
		factor := (term1 * term2) % MOD
		val := (g[x-1] - 1 + MOD) % MOD
		g[x] = (factor * val) % MOD
	}

	f := make([]int64, S+1)
	f[0] = 0
	for x := 1; x <= S; x++ {
		f[x] = (f[x-1] + g[x-1]) % MOD
	}

	ans := int64(0)
	for i := 0; i < n; i++ {
		ans = (ans + f[a[i]]) % MOD
	}

	ans = (ans - f[S] + MOD) % MOD

	fmt.Println(ans)
}
```