← Home
For problem statement at 1000-1999/1500-1599/1550-1559/1552/problemD.txt this is a correct solution, but verifier at 1000-1999/1500-1599/1550-1559/1552/verifierD.go ends with All 100 tests passed can you fix the verifier? package main

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

func main() {
	in := bufio.NewReaderSize(os.Stdin, 1<<20)
	out := bufio.NewWriterSize(os.Stdout, 1<<20)
	defer out.Flush()

	var t int
	fmt.Fscan(in, &t)
	for ; t > 0; t-- {
		var n int
		fmt.Fscan(in, &n)
		a := make([]int, n)
		for i := 0; i < n; i++ {
			fmt.Fscan(in, &a[i])
		}

		total := 1
		for i := 0; i < n; i++ {
			total *= 3
		}

		ok := false
		for mask := 1; mask < total && !ok; mask++ {
			x := mask
			sum := 0
			for i := 0; i < n; i++ {
				d := x % 3
				x /= 3
				if d == 1 {
					sum += a[i]
				} else if d == 2 {
					sum -= a[i]
				}
			}
			if sum == 0 {
				ok = true
			}
		}

		if ok {
			fmt.Fprintln(out, "YES")
		} else {
			fmt.Fprintln(out, "NO")
		}
	}
}