← Home
For problem statement at 1000-1999/1900-1999/1950-1959/1958/problemC.txt this is a correct solution, but verifier at 1000-1999/1900-1999/1950-1959/1958/verifierC.go ends with mismatch on test 2: n=58 k=248149834054819672 expected 55 got 67

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

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

func popcount64(x uint64) int64 {
	var c int64
	for x != 0 {
		x &= x - 1
		c++
	}
	return c
}

func floorLog2(x uint64) int64 {
	var p int64
	for x>>1 != 0 {
		x >>= 1
		p++
	}
	return p
}

func main() {
	in := bufio.NewReader(os.Stdin)
	out := bufio.NewWriter(os.Stdout)
	defer out.Flush()

	var t int
	fmt.Fscan(in, &t)
	for ; t > 0; t-- {
		var n int64
		var k uint64
		fmt.Fscan(in, &n, &k)

		if k == 0 || k == (uint64(1)<<uint(n)) {
			fmt.Fprintln(out, 0)
			continue
		}

		pc := popcount64(k)
		msb := floorLog2(k)
		ans := (int64(2)*pc - 1) + (n - msb - 1)
		fmt.Fprintln(out, ans)
	}
}
```