← Home
For problem statement at 0-999/200-299/200-209/201/problemE.txt this is a correct solution, but verifier at 0-999/200-299/200-209/201/verifierE.go ends with All tests passed can you fix the verifier? ```go
package main

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

func C(k, s int64) int64 {
	if s < 0 || s > k {
		return 0
	}
	if s > k/2 {
		s = k - s
	}
	var res int64 = 1
	for i := int64(1); i <= s; i++ {
		res = res * (k - i + 1) / i
		if res > 1e9 {
			return 1e9 + 1
		}
	}
	return res
}

func main() {
	reader := bufio.NewReader(os.Stdin)
	var t int
	if _, err := fmt.Fscan(reader, &t); err != nil {
		return
	}

	for i := 0; i < t; i++ {
		var n, m int64
		fmt.Fscan(reader, &n, &m)

		left := int64(0)
		right := n
		ans := n

		for left <= right {
			mid := left + (right-left)/2

			sum := int64(0)
			rem := n
			possible := true
			for s := int64(0); s <= mid; s++ {
				cnt := C(mid, s)
				if cnt >= rem {
					sum += rem * s
					rem = 0
					break
				} else {
					sum += cnt * s
					rem -= cnt
				}
			}

			if rem > 0 {
				possible = false
			} else if sum > mid*m {
				possible = false
			}

			if possible {
				ans = mid
				right = mid - 1
			} else {
				left = mid + 1
			}
		}
		fmt.Println(ans)
	}
}
```