← Home
For problem statement at 1000-1999/1200-1299/1220-1229/1220/problemD.txt this is a correct solution, but verifier at 1000-1999/1200-1299/1220-1229/1220/verifierD.go ends with wrong answer on test 1: expected length 5 got 45
exit status 1 can you fix the verifier? package main

import (
	"bytes"
	"fmt"
	"io"
	"math/bits"
	"os"
	"strconv"
)

func main() {
	data, _ := io.ReadAll(os.Stdin)
	var n int
	var offset int

	for offset < len(data) && data[offset] <= ' ' {
		offset++
	}
	for offset < len(data) && data[offset] > ' ' {
		n = n*10 + int(data[offset]-'0')
		offset++
	}

	groups := make([][]uint64, 64)
	for i := 0; i < n; i++ {
		var val uint64
		for offset < len(data) && data[offset] <= ' ' {
			offset++
		}
		if offset >= len(data) {
			break
		}
		for offset < len(data) && data[offset] > ' ' {
			val = val*10 + uint64(data[offset]-'0')
			offset++
		}
		tz := bits.TrailingZeros64(val)
		groups[tz] = append(groups[tz], val)
	}

	maxIdx := 0
	for i := 1; i < 64; i++ {
		if len(groups[i]) > len(groups[maxIdx]) {
			maxIdx = i
		}
	}

	var erased []uint64
	for i := 0; i < 64; i++ {
		if i != maxIdx {
			erased = append(erased, groups[i]...)
		}
	}

	fmt.Println(len(erased))
	if len(erased) > 0 {
		var buf bytes.Buffer
		for i, v := range erased {
			if i > 0 {
				buf.WriteByte(' ')
			}
			buf.WriteString(strconv.FormatUint(v, 10))
		}
		buf.WriteByte('\n')
		os.Stdout.Write(buf.Bytes())
	}
}