Búsqueda ciega
Autor: Vicente Opazo
Tiempo límite: 2 segundos
Memoria límite: 256 megabytes
Davo ha perdido la vista y para recuperarla necesita encontrar sus \(k\) pastillas especiales contra la ceguera. Tiene un pastillero con \(n\) compartimentos numerados del \(1\) al \(n\). En exactamente \(k\) de estos compartimentos hay una pastilla contra la ceguera y en los demás hay pastillas comunes que no le hacen efecto.
Las pastillas contra la ceguera tienen un color distinto, por lo que una persona que puede ver sabría diferenciarlas fácilmente. Sin embargo, al tacto todas las pastillas son idénticas, por lo que Davo, que está ciego, no puede saber dónde están. Su amigo Lautaro sí puede verlas, pero como es juguetón, decide ayudarlo de una forma peculiar.
Lautaro le permite hacer consultas del siguiente tipo:
- Davo elige un compartimento \(x\) (\(1 \le x\le n\)).
- Lautaro le responde con un número: cuántas pastillas contra la ceguera hay en los compartimentos con índice menor que \(x\) (es decir, en los compartimentos \(1, 2, \ldots , x-1\)).
Con suficiente información, Davo siempre puede deducir exactamente qué compartimentos contienen las \(k\) pastillas especiales. Sin embargo, como no quiere seguirle el juego a Lautaro por mucho tiempo, quiere encontrar una estrategia óptima para hacer las consultas necesarias.
Dado \(n\) (el número de compartimentos) y \(k\) (el número de pastillas especiales), determina el número mínimo de consultas que Davo necesita para garantizar encontrar las \(k\) pastillas en el peor caso, asumiendo que sigue la mejor estrategia posible.
Entrada
La entrada contiene dos enteros \(n\) y \(k\) (\(1 \le k\le n\le 50\)).
Salida
Imprime un entero: el número mínimo de consultas necesarias en el peor caso.
Ejemplos
Entrada 1
8 1
Salida 1
3
Entrada 2
5 2
Salida 2
4
Entrada 3
50 50
Salida 3
0
Comentarios