← Home
For problem statement at 1000-1999/1600-1699/1610-1619/1614/problemD1.txt this is a correct solution, but verifier at 1000-1999/1600-1699/1610-1619/1614/verifierD1.go ends with All tests passed can you fix the verifier? ```go
package main

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

func main() {
	const MAX = 5000000
	in := bufio.NewReader(os.Stdin)
	out := bufio.NewWriter(os.Stdout)
	defer out.Flush()

	var n int
	fmt.Fscan(in, &n)
	
	freq := make([]int, MAX+1)
	maxVal := 0
	for i := 0; i < n; i++ {
		var x int
		fmt.Fscan(in, &x)
		freq[x]++
		if x > maxVal {
			maxVal = x
		}
	}

	cnt := make([]int, maxVal+1)
	for i := 1; i <= maxVal; i++ {
		for j := i; j <= maxVal; j += i {
			cnt[i] += freq[j]
		}
	}

	dp := make([]int64, maxVal+1)
	for i := maxVal; i >= 1; i-- {
		dp[i] = int64(cnt[i]) * int64(i)
		for j := 2 * i; j <= maxVal; j += i {
			val := dp[j] + int64(cnt[i]-cnt[j])*int64(i)
			if val > dp[i] {
				dp[i] = val
			}
		}
	}

	fmt.Fprintln(out, dp[1])
}
```