← Home
For problem statement at 1000-1999/1200-1299/1210-1219/1216/problemE1.txt this is a correct solution, but verifier at 1000-1999/1200-1299/1210-1219/1216/verifierE1.go ends with All tests passed can you fix the verifier? ```go
package main

import (
	"fmt"
	"strconv"
)

const MAX = 100000

var lenBlock [MAX + 1]int64

var cum [MAX + 1]int64

func numDigits(n int) int {
	count := 0
	for n > 0 {
		count++
		n /= 10
	}
	return count
}

func main() {
	lenBlock[0] = 0
	cum[0] = 0
	for i := 1; i <= MAX; i++ {
		d := numDigits(i)
		lenBlock[i] = lenBlock[i-1] + int64(d)
		cum[i] = cum[i-1] + lenBlock[i]
	}
	var q int
	fmt.Scan(&q)
	for qi := 0; qi < q; qi++ {
		var k int64
		fmt.Scan(&k)
		low := 1
		high := MAX
		for low < high {
			mid := (low + high) / 2
			if cum[mid] >= k {
				high = mid
			} else {
				low = mid + 1
			}
		}
		m := low
		prevCum := cum[m-1]
		pos := k - prevCum
		low = 1
		high = m
		for low < high {
			mid := (low + high) / 2
			if lenBlock[mid] >= pos {
				high = mid
			} else {
				low = mid + 1
			}
		}
		j := low
		prevLen := lenBlock[j-1]
		idx := pos - prevLen
		s := strconv.Itoa(j)
		dig := int(s[int(idx-1)] - '0')
		fmt.Println(dig)
	}
}
```