For problem statement at 1000-1999/1700-1799/1740-1749/1743/problemC.txt this is a correct solution, but verifier at 1000-1999/1700-1799/1740-1749/1743/verifierC.go ends with case 3 failed
input:
2
10
0000111011
3 7 8 14 5 20 12 14 2 10
5
01111
18 6 7 4 4
expected:
70
35
got:
49
21 can you fix the verifier? ```go
package main
import (
"bufio"
"fmt"
"os"
)
func max(a, b int64) int64 {
if a > b {
return a
}
return b
}
func main() {
in := bufio.NewReaderSize(os.Stdin, 1<<20)
out := bufio.NewWriterSize(os.Stdout, 1<<20)
defer out.Flush()
var t int
fmt.Fscan(in, &t)
for ; t > 0; t-- {
var n int
fmt.Fscan(in, &n)
var s string
fmt.Fscan(in, &s)
a := make([]int64, n)
for i := 0; i < n; i++ {
fmt.Fscan(in, &a[i])
}
const neg int64 = -1 << 60
dp0, dp1 := int64(0), neg
for i := 0; i < n; i++ {
dp0n, dp1n := neg, neg
if s[i] == '0' {
dp0n = max(dp0, dp1)
} else {
dp0n = max(dp0n, dp0+a[i])
dp1n = max(dp1n, dp0)
dp0n = max(dp0n, dp1+a[i])
dp0n = max(dp0n, dp1+a[i])
}
dp0, dp1 = dp0n, dp1n
}
ans := max(dp0, dp1)
fmt.Fprintln(out, ans)
}
}
```