¿Cómo se puede resolver este problema mediante la búsqueda binaria, Shil y la fábrica de juguetes?

Búsqueda binaria la respuesta
Aquí usamos la búsqueda binaria para encontrar nuestra respuesta. Primero suponemos que nuestra respuesta está en algún rango [0, 1000000]. Luego usamos la búsqueda binaria para encontrar el elemento. En cada iteración podemos reducir el rango a la mitad.
Por ejemplo, nuestra función es f (x) = 5 + 7. La respuesta es 12.
Comenzamos nuestra búsqueda asumiendo que la respuesta está en [0,100]. Tomamos mid = 50 y lo comparamos con la función y ahora el rango es [0,50]. De esta manera encontraremos que la respuesta es 12.
Exactamente el problema anterior se puede resolver con este método.
Te daré la plantilla para resolver este tipo de problemas.

#define EPS 1e-9
bool can (doble f) {
// encuentra la cantidad de juguetes que podemos producir con este tiempo mínimo
// si el número de juguetes es mayor que nuestro valor requerido, devuelve verdadero, lo que significa que omitimos la mitad derecha del rango
// o bien devolver falso para omitir la mitad izquierda del rango
}
// dentro de int main ()
// binario busca la respuesta
doble lo = 0.0, hi = 1000000.0, mid = 0.0, ans = 0.0
while (fabs (hi-lo)> EPS) {
mid = (lo + hi) / 2;
if (can (mid)) {ans = mid; hola = medio; }
sino lo = medio;
}
El ans es nuestro valor requerido.
Para evitar la precisión, es mejor usar un número constante de iteraciones en lugar de permitir que el número de iteraciones varíe dinámicamente.