← Home
For problem statement at 1000-1999/1600-1699/1680-1689/1688/problemB.txt this is a correct solution, but verifier at 1000-1999/1600-1699/1680-1689/1688/verifierB.go ends with All 100 tests passed can you fix the verifier? package main

import (
	"bufio"
	"fmt"
	"io"
	"math/bits"
	"os"
)

type FastScanner struct {
	data []byte
	idx  int
}

func NewFastScanner() *FastScanner {
	data, _ := io.ReadAll(os.Stdin)
	return &FastScanner{data: data}
}

func (fs *FastScanner) NextInt() int {
	n := len(fs.data)
	for fs.idx < n && (fs.data[fs.idx] < '0' || fs.data[fs.idx] > '9') {
		fs.idx++
	}
	val := 0
	for fs.idx < n && fs.data[fs.idx] >= '0' && fs.data[fs.idx] <= '9' {
		val = val*10 + int(fs.data[fs.idx]-'0')
		fs.idx++
	}
	return val
}

func main() {
	fs := NewFastScanner()
	out := bufio.NewWriterSize(os.Stdout, 1<<20)
	defer out.Flush()

	t := fs.NextInt()
	for ; t > 0; t-- {
		n := fs.NextInt()
		even := 0
		minV := 1 << 30

		for i := 0; i < n; i++ {
			x := fs.NextInt()
			if x&1 == 0 {
				even++
				v := bits.TrailingZeros(uint(x))
				if v < minV {
					minV = v
				}
			}
		}

		ans := 0
		if even == 0 {
			ans = 0
		} else if even < n {
			ans = even
		} else {
			ans = n - 1 + minV
		}

		fmt.Fprintln(out, ans)
	}
}