package main import "fmt" var A, B, C int64 func isSatisfied(years int64) bool { aYearNum := years / A if aYearNum == 0 || C - (years - aYearNum) + aYearNum - 1 <= 0 { return years >= C } return B >= (C - (years - aYearNum) + aYearNum - 1) / aYearNum } func main() { fmt.Scan(&A, &B, &C) var lb, ub int64 = 0, C + 1 for ub - lb > 1 { mid := (ub + lb) / 2 if isSatisfied(mid) { ub = mid } else { lb = mid } } fmt.Println(ub) }