For problem statement at 1000-1999/1700-1799/1730-1739/1739/problemE.txt this is a correct solution, but verifier at 1000-1999/1700-1799/1730-1739/1739/verifierE.go ends with test 1 failed
input:
31
0110111010110010011011100001110
0111001000100010011010101000100
expected:20
actual:25
exit status 1 can you fix the verifier? ```go
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
reader := bufio.NewReader(os.Stdin)
var n int
fmt.Fscan(reader, &n)
var row1, row2 string
fmt.Fscan(reader, &row1)
fmt.Fscan(reader, &row2)
dp := [2][2]int{
{0, -1000000},
{-1000000, -1000000},
}
for c := 0; c < n; c++ {
var grid [2]int
grid[0] = int(row1[c] - '0')
grid[1] = int(row2[c] - '0')
if c == 0 {
grid[0] = 0
}
new_dp := [2][2]int{
{-1000000, -1000000},
{-1000000, -1000000},
}
for r := 0; r < 2; r++ {
for f := 0; f < 2; f++ {
if dp[r][f] < 0 {
continue
}
val_r := grid[r]
val_o := grid[1-r]
if f == 1 {
val_o = 0
}
if dp[r][f] > new_dp[r][0] {
new_dp[r][0] = dp[r][f]
}
if val_r == 1 {
if dp[r][f]+1 > new_dp[r][0] {
new_dp[r][0] = dp[r][f] + 1
}
}
if val_o == 1 {
if dp[r][f]+1 > new_dp[1-r][1] {
new_dp[1-r][1] = dp[r][f] + 1
}
}
if val_r == 1 && val_o == 1 {
if dp[r][f]+2 > new_dp[1-r][1] {
new_dp[1-r][1] = dp[r][f] + 2
}
}
}
}
dp = new_dp
}
ans := 0
for r := 0; r < 2; r++ {
for f := 0; f < 2; f++ {
if dp[r][f] > ans {
ans = dp[r][f]
}
}
}
fmt.Println(ans)
}
```