← Home
For problem statement at 0-999/500-599/510-519/519/problemD.txt this is a correct solution, but verifier at 0-999/500-599/510-519/519/verifierD.go ends with All tests passed can you fix the verifier? package main

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

func main() {
	in := bufio.NewReaderSize(os.Stdin, 1<<20)

	var w [26]int64
	for i := 0; i < 26; i++ {
		fmt.Fscan(in, &w[i])
	}

	var s string
	fmt.Fscan(in, &s)
	b := []byte(s)

	var maps [26]map[int64]int64
	for i := 0; i < 26; i++ {
		maps[i] = make(map[int64]int64)
	}

	var ans int64
	var pref int64

	for i := 0; i < len(b); i++ {
		c := int(b[i] - 'a')
		ans += maps[c][pref]
		pref += w[c]
		maps[c][pref]++
	}

	fmt.Println(ans)
}