Deslizamientos de tierra
En este desafío, su trabajo es predecir el alcance del daño causado por un deslizamiento de tierra masivo. Utilizamos el siguiente modelo bidimensional simplificado para ello, parametrizado por una altura inicial h >= 0
y un coeficiente crítico c > 0
. Comienzas con un acantilado de altura h
, y se supone que el terreno es completamente plano infinitamente a la izquierda y a la derecha. Para h = 6
, la situación se ve así:
##########
##########
##########
##########
##########
##########
-----------------------
El -
son lecho de roca inamovible, y el #
son suelos inestables. Si la diferencia de altura entre dos columnas vecinas es mayor que c
, se produce un deslizamiento de tierra : las c
unidades superiores de suelo de la columna izquierda caen a las siguientes c
columnas a la derecha, una a cada una. La columna no vacía más a la derecha de la figura es inestable c = 2
, por lo que se desencadena un deslizamiento de tierra:
#########
#########
##########
##########
##########
############
-----------------------
La columna aún es inestable, lo que causa un segundo deslizamiento de tierra:
#########
#########
#########
#########
############
############
-----------------------
Ahora, la columna a su izquierda se ha vuelto inestable, por lo que se desencadena un nuevo deslizamiento de tierra allí:
########
########
#########
###########
############
############
-----------------------
Después de esto, el acantilado es estable nuevamente. Lo bueno de este modelo es que el orden en que se procesan los deslizamientos de tierra no importa: el resultado final es el mismo.
La tarea
Su programa recibe los parámetros enteros h
y c
como entradas (el orden no importa, pero debe especificarlo en su respuesta), y debería generar el número total de columnas que afecta el deslizamiento de tierra. Esto significa el número de columnas en el acantilado estable resultante cuya altura es estrictamente entre 0
y h
. En el ejemplo anterior, la salida correcta es 4
.
Puede escribir un programa completo o una función. El conteo de bytes más bajo gana, y las lagunas estándar no se permiten.
Casos de prueba
Estos se dan en el formato h c -> output
.
0 2 -> 0
2 3 -> 0
6 2 -> 4
6 6 -> 0
10 1 -> 10
15 1 -> 14
15 2 -> 11
15 3 -> 6
40 5 -> 16
80 5 -> 28
80 10 -> 17