Copiado al portapapeles
Descripción
Los estudiantes de primer semestre de la materia de Programación I del paralelo “C”, para celebrar que pasaron la materia, se proponen a hornear un panetón de \( n \) metros de longitud.
Pero no todo es alegría, pues algunos de ellos estaban descontentos ya que no se logró la nota de aprobación, entonces se proponen a arruinarles la celebración a los demás.
Su plan empieza arruinando el panetón, cortándolo en \( k \) pedazos de todo tamaño, para que les sea difícil repartirse.
Pero, afortunadamente los estudiantes aprobados, tienen una idea (gracias programación I), para volver a rearmar el panetón al tamaño original, pero necesitan pensarlo muy bien.
Después de mucho analizar y pensar consiguen el plan perfecto, que consiste en realizar las siguientes operaciones con los \( k \) pedazos de panetón:
Escoger un pedazo de panetón con tamaño \( t_i \geq 2 \) y dividir en dos piezas, uno con tamaño 1 y el otro con lo restante, es decir \( t_i - 1 \).
Escoger un pedazo de panetón con tamaño \( t_i \) y otra pieza con tamaño 1 y unirlas en una sola, es decir \( t_i + 1 \).
Con esta idea, los demás deciden aumentar la dificultad, y les piden a los \textit{más cracks} del paralelo que determinen el número mínimo de operaciones que se necesita para rearmar el panetón a su tamaño original \( n \).
Los más cracks de paralelo analizan la idea y empiezan a dibujar un ejemplo muy básico de cómo podría resolverse:
Si \( n = 6 \) (tamaño del panetón), \( k = 3 \) (número de pedazos de panetón que fue cortado)
\[
p = [3, 2, 1] \quad \text{(Tamaño de cada pedazo)}
\]
Dividimos el pedazo 2 en dos tamaños, nos quedaría 1 y 1, los nuevos pedazos serían así \( p = [3, 1, 1, 1] \).
Unimos los pedazos 3 y 1, los pedazos restantes serían algo así \( p = [4, 1, 1] \).
Unimos los pedazos 3 y 1, los pedazos restantes serían algo así \( p = [5, 1] \).
Unimos los pedazos 3 y 1, los pedazos restantes serían algo así \( p = [6] \).
Entrada
La primera línea de la entrada contiene dos enteros positivos \( n \) y \( k \) \( (2 \leq n \leq 10^9, \; 2 \leq k \leq 10^5) \). Donde \( n \) es el tamaño del panetón y \( k \) es el número de pedazos del panetón. La segunda línea contiene \( k \) enteros positivos \( t_1, t_2, \dots, t_k \) \( (1 \leq t_i \leq n - 1, \; \sum t_i = n) \) que representan los tamaños de los pedazos del panetón. Se garantiza que la suma de \( k \) en todos los casos de prueba no excede \( 2 \times 10^5 \).
Salida
Para cada caso de prueba, imprime el número mínimo de operaciones que los Cracks necesitan para restaurar el panetón a su tamaño original.