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

import (
	"bufio"
	"os"
	"strconv"
)

func main() {
	scanner := bufio.NewScanner(os.Stdin)
	scanner.Split(bufio.ScanWords)

	if !scanner.Scan() {
		return
	}
	n, _ := strconv.Atoi(scanner.Text())

	if !scanner.Scan() {
		return
	}
	k, _ := strconv.Atoi(scanner.Text())

	const MAX_VAL = 1000000
	counts := make([]int, MAX_VAL+1)
	minVal := MAX_VAL + 1
	maxInputVal := 0

	for i := 0; i < n; i++ {
		scanner.Scan()
		val, _ := strconv.Atoi(scanner.Text())
		counts[val]++
		if val < minVal {
			minVal = val
		}
		if val > maxInputVal {
			maxInputVal = val
		}
	}

	pref := make([]int, MAX_VAL+2)
	for i := 1; i <= MAX_VAL+1; i++ {
		pref[i] = pref[i-1] + counts[i-1]
	}

	ans := k + 1
	if minVal < ans {
		ans = minVal
	}

	for x := minVal; x > ans; x-- {
		possible := true
		for j := 1; j*x <= maxInputVal; j++ {
			l := j*x + k + 1
			r := (j+1)*x - 1

			if r > MAX_VAL {
				r = MAX_VAL
			}

			if l <= r {
				if pref[r+1]-pref[l] > 0 {
					possible = false
					break
				}
			}
		}
		if possible {
			ans = x
			break
		}
	}

	writer := bufio.NewWriter(os.Stdout)
	writer.WriteString(strconv.Itoa(ans) + "\n")
	writer.Flush()
}
```