← Home
For problem statement at 0-999/300-399/350-359/358/problemD.txt this is a correct solution, but verifier at 0-999/300-399/350-359/358/verifierD.go ends with All 100 tests passed can you fix the verifier? ```go
package main

import (
	"bufio"
	"fmt"
	"os"
	"strconv"
	"strings"
)

func main() {
	scanner := bufio.NewScanner(os.Stdin)
	scanner.Scan()
	n, _ := strconv.Atoi(scanner.Text())

	a := make([]int, n)
	b := make([]int, n)
	c := make([]int, n)

	scanner.Scan()
	parts := strings.Fields(scanner.Text())
	for i := 0; i < n; i++ {
		a[i], _ = strconv.Atoi(parts[i])
	}

	scanner.Scan()
	parts = strings.Fields(scanner.Text())
	for i := 0; i < n; i++ {
		b[i], _ = strconv.Atoi(parts[i])
	}

	scanner.Scan()
	parts = strings.Fields(scanner.Text())
	for i := 0; i < n; i++ {
		c[i], _ = strconv.Atoi(parts[i])
	}

	if n == 1 {
		fmt.Println(a[0])
		return
	}

	dp0 := a[0]
	dp1 := b[0]

	for i := 1; i < n-1; i++ {
		newDp0 := max(dp0+b[i], dp1+a[i])
		newDp1 := max(dp0+c[i], dp1+b[i])
		dp0, dp1 = newDp0, newDp1
	}

	ans := max(dp0+b[n-1], dp1+a[n-1])
	fmt.Println(ans)
}

func max(a, b int) int {
	if a > b {
		return a
	}
	return b
}
```