← Home
For problem statement at 1000-1999/1900-1999/1900-1909/1901/problemC.txt this is a correct solution, but verifier at 1000-1999/1900-1999/1900-1909/1901/verifierC.go ends with failed to build reference: exit status 1
stat /tmp/go-build1786760979/b001/exe/1901C.go: directory not found

exit status 1 can you fix the verifier? ```go
package main

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

func main() {
	in := bufio.NewReader(os.Stdin)
	var t int
	fmt.Fscan(in, &t)
	for i := 0; i < t; i++ {
		var n int
		fmt.Fscan(in, &n)
		a := make([]int64, n)
		var minA, maxA int64 = 1e18, -1
		for i := 0; i < n; i++ {
			fmt.Fscan(in, &a[i])
			if a[i] < minA {
				minA = a[i]
			}
			if a[i] > maxA {
				maxA = a[i]
			}
		}
		d := maxA - minA
		var k int
		if d == 0 {
			k = 0
		} else {
			dd := uint64(d + 1)
			k = 64 - bits.LeadingZeros64(dd - 1)
		}
		fmt.Println(k)
		if k > n || k == 0 {
			continue
		}
		arr := make([]int64, n)
		copy(arr, a)
		xs := make([]int64, 0, k)
		rem := k
		for st := 0; st < k; st++ {
			targ := (int64(1) << uint(rem-1)) - 1
			var min0, max0, min1, max1 int64 = 1e18, -1e18, 1e18, -1e18
			for _, val := range arr {
				b0 := (val + 0) / 2
				if b0 < min0 {
					min0 = b0
				}
				if b0 > max0 {
					max0 = b0
				}
				b1 := (val + 1) / 2
				if b1 < min1 {
					min1 = b1
				}
				if b1 > max1 {
					max1 = b1
				}
			}
			span0 := max0 - min0
			span1 := max1 - min1
			p := -1
			if span0 <= targ {
				p = 0
			} else if span1 <= targ {
				p = 1
			}
			xs = append(xs, int64(p))
			for i := 0; i < n; i++ {
				arr[i] = (arr[i] + int64(p)) / 2
			}
			rem--
		}
		for i, x := range xs {
			if i > 0 {
				fmt.Print(" ")
			}
			fmt.Print(x)
		}
		fmt.Println()
	}
}
```