← Home
For problem statement at 1000-1999/1000-1099/1000-1009/1009/problemE.txt this is a correct solution, but verifier at 1000-1999/1000-1099/1000-1009/1009/verifierE.go ends with All tests passed can you fix the verifier? package main

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

func readInt(reader *bufio.Reader) int64 {
	var res int64
	var b byte
	var err error
	for {
		b, err = reader.ReadByte()
		if err != nil {
			return 0
		}
		if b >= '0' && b <= '9' {
			break
		}
	}
	res = int64(b - '0')
	for {
		b, err = reader.ReadByte()
		if err != nil || b < '0' || b > '9' {
			break
		}
		res = res*10 + int64(b-'0')
	}
	return res
}

func main() {
	reader := bufio.NewReader(os.Stdin)
	n := int(readInt(reader))

	a := make([]int64, n+1)
	for i := 1; i <= n; i++ {
		a[i] = readInt(reader)
	}

	mod := int64(998244353)
	ans := a[n] % mod
	power := int64(1)

	for k := n - 1; k >= 1; k-- {
		coeff := (int64(n-k+2) * power) % mod
		ans = (ans + coeff*a[k]) % mod
		power = (power * 2) % mod
	}

	fmt.Println(ans)
}