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

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

func main() {
	reader := bufio.NewReader(os.Stdin)
	var n, k int
	if _, err := fmt.Fscan(reader, &n, &k); err != nil {
		return
	}

	a := make([]int, n)
	for i := 0; i < n; i++ {
		fmt.Fscan(reader, &a[i])
	}

	maxLimit := 1000000
	C := make([]int, maxLimit+5)

	for i := 0; i < n; i++ {
		for j := i + 1; j < n; j++ {
			d := a[i] - a[j]
			if d < 0 {
				d = -d
			}
			C[d]++
		}
	}

	maxE := k * (k + 1) / 2
	seen := make([]int, maxLimit+5)
	token := 0

	for m := 1; m <= maxLimit+1; m++ {
		E := 0
		for j := m; j <= maxLimit; j += m {
			E += C[j]
		}
		
		if E <= maxE {
			token++
			rem := 0
			for _, val := range a {
				mod := val % m
				if seen[mod] != token {
					seen[mod] = token
					rem++
				}
			}
			if n-rem <= k {
				fmt.Println(m)
				return
			}
		}
	}
}