← Home
For problem statement at 1000-1999/1000-1099/1090-1099/1099/problemB.txt this is a correct solution, but verifier at 1000-1999/1000-1099/1090-1099/1099/verifierB.go ends with wrong answer on test 1
input:
916666081
expected:
60553

got:
60554

exit status 1 can you fix the verifier? package main

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

func isqrt(x int64) int64 {
	l, r := int64(0), int64(100000)
	for l < r {
		m := (l + r + 1) >> 1
		if m*m <= x {
			l = m
		} else {
			r = m - 1
		}
	}
	return l
}

func main() {
	in := bufio.NewReaderSize(os.Stdin, 1<<20)
	var n int64
	fmt.Fscan(in, &n)

	k := isqrt(n)
	ans := int64(1<<60)

	for a := k; a <= k+2; a++ {
		if a <= 0 {
			continue
		}
		b := (n + a - 1) / a
		cur := a + b
		if cur < ans {
			ans = cur
		}
	}

	fmt.Println(ans + 1)
}