Оползни
В этой задаче ваша задача состоит в том, чтобы предсказать степень ущерба, нанесенного массивным оползнем. Для этого мы используем следующую упрощенную двумерную модель, параметризованную начальной высотой h >= 0
и критическим коэффициентом c > 0
. Вы начинаете со скалы высоты h
, и предполагается, что местность абсолютно плоская бесконечно слева и справа от нее. Ибо h = 6
ситуация выглядит так:
##########
##########
##########
##########
##########
##########
-----------------------
-
Неподвижен бедрок и #
неустойчивы почвы. Если разница в высоте между двумя соседними столбцами больше, чем c
это происходит, происходит оползень : верхние c
единицы почвы из левого столбца опускаются до следующих c
столбцов справа, по одному на каждый. Крайний правый непустой столбец на рисунке нестабилен c = 2
, поэтому происходит оползень:
#########
#########
##########
##########
##########
############
-----------------------
Столбец все еще нестабилен, что вызывает второй оползень:
#########
#########
#########
#########
############
############
-----------------------
Теперь столбик слева стал нестабильным, поэтому там произошел новый оползень:
########
########
#########
###########
############
############
-----------------------
После этого скала снова стабилизируется. Приятно то, что в этой модели порядок обработки оползней не имеет значения: конечный результат одинаков.
Задание
Ваша программа получает целочисленные параметры h
и в c
качестве входных данных (порядок не имеет значения, но вы должны указать его в своем ответе), и она должна выводить общее количество столбцов , на которые влияет оползень. Это означает количество столбцов в полученном стабильном утесе, высота которого строго между 0
и h
. В приведенном выше примере правильный вывод 4
.
Вы можете написать полную программу или функцию. Побеждает меньшее количество байтов, и стандартные лазейки запрещены.
Тестовые случаи
Они даны в формате 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