Copiado al portapapeles
Descripción
Un día, el Docente de Programación I (INF-111) del paralelo ‘C’ propuso un desafío a sus alumnos de primer semestre. Sin embargo, uno de los estudiantes, que estaba distraído programando un videojuego (DOTA 2), decidió transformar el desafío en un problema para practicar. Ahora, el estudiante está atascado y necesita tu ayuda para resolverlo.
El problema transformado va referido al videojuego en el cual consiste en lo siguiente: Hay un héroe y tiene \( n \)-ítems equipados. El \( i \)-ésimo ítem tiene un daño representado por un número \( a_i \), y el héroe se enfrenta a un héroe enemigo donde sus puntos de salud están representados por un número \( D \).
El héroe debe realizar ataques hasta que el héroe enemigo caiga derrotado (muera). En un ataque se elegirá un ítem y reducirá los puntos de salud del enemigo. El héroe enemigo caerá derrotado cuando sus puntos de salud caigan a cero o menor.
Sin embargo, no siempre es tan fácil como parece, sino la respuesta sería muy sencilla para cualquier estudiante. El héroe no puede utilizar 2 veces seguidas el mismo ítem.
Descubre cuál es el número mínimo de veces que el héroe necesitará usar los ítems para derrotar al héroe enemigo.
Entrada
La entrada consiste en un único caso de prueba, donde la primera línea contiene dos enteros \( n \) \((2 \leq n \leq 10^3)\) y \( D \) \((1 \leq D \leq 10^9)\), el número de ítems que dispone el héroe y los puntos de salud del héroe enemigo.
La segunda línea contiene \( n \) enteros \( a_1, a_2, \dots, a_n \) \((1 \leq a_i \leq 10^9)\), representando los puntos de daño de cada ítem que tiene el héroe.
Salida
Imprime un solo entero — el número mínimo de veces que el héroe necesitará usar los ítems para derrotar al héroe enemigo.