← Home
For problem statement at 1000-1999/1800-1899/1840-1849/1848/problemF.txt this is a correct solution, but verifier at 1000-1999/1800-1899/1840-1849/1848/verifierF.go ends with All tests passed can you fix the verifier? package main

import (
	"io"
	"os"
	"strconv"
)

func nextInt(data []byte, idx *int) int {
	n := len(data)
	for *idx < n && (data[*idx] < '0' || data[*idx] > '9') {
		*idx = *idx + 1
	}
	v := 0
	for *idx < n && data[*idx] >= '0' && data[*idx] <= '9' {
		v = v*10 + int(data[*idx]-'0')
		*idx = *idx + 1
	}
	return v
}

func main() {
	data, _ := io.ReadAll(os.Stdin)
	idx := 0
	n := nextInt(data, &idx)
	a := make([]int, n)
	for i := 0; i < n; i++ {
		a[i] = nextInt(data, &idx)
	}

	ans := 0
	arr := a
	for len(arr) > 1 {
		m := len(arr) / 2
		eq := true
		for i := 0; i < m; i++ {
			if arr[i] != arr[i+m] {
				eq = false
				break
			}
		}
		if !eq {
			for i := 0; i < m; i++ {
				arr[i] ^= arr[i+m]
			}
			ans += m
		}
		arr = arr[:m]
	}
	if arr[0] != 0 {
		ans++
	}

	os.Stdout.Write([]byte(strconv.Itoa(ans)))
}