Osuwiska
W tym wyzwaniu Twoim zadaniem jest przewidzieć zakres szkód spowodowanych przez ogromne osuwiska. Używamy do tego następującego uproszczonego dwuwymiarowego modelu, parametryzowanego przez wysokość początkową h >= 0 i współczynnik krytyczny c > 0 . Zaczynasz od klifu wysokości hi zakłada się, że teren jest całkowicie płaski nieskończenie po lewej i po prawej stronie. Dla h = 6, jak wygląda sytuacja w tym:
##########
##########
##########
##########
##########
##########
-----------------------
Są -to nieruchome podłoże skalne i #niestabilna gleba. Jeśli różnica wysokości między dwiema sąsiednimi kolumnami jest większa niż c, następuje osunięcie się ziemi : górne cjednostki gleby z lewej kolumny spadają do następnych ckolumn po prawej, po jednej do każdej. Najbardziej wysunięta na prawo niepusta kolumna na rysunku jest niestabilna c = 2, więc następuje osunięcie się ziemi:
#########
#########
##########
##########
##########
############
-----------------------
Kolumna jest nadal niestabilna, co powoduje drugie osunięcie się ziemi:
#########
#########
#########
#########
############
############
-----------------------
Teraz kolumna po jego lewej stronie stała się niestabilna, dlatego zostaje tam wywołane nowe osunięcie się ziemi:
########
########
#########
###########
############
############
-----------------------
Po tym klif znów jest stabilny. Zaletą tego modelu jest to, że kolejność przetwarzania osuwisk nie ma znaczenia: wynik końcowy jest taki sam.
Zadanie
Twój program otrzymuje parametry całkowite hi cjako dane wejściowe (kolejność nie ma znaczenia, ale musisz podać go w odpowiedzi) i powinien on wypisać całkowitą liczbę kolumn , na które ma wpływ osuwisko. Oznacza to liczbę kolumn w powstałym stabilnym klifie, którego wysokość jest ściśle pomiędzy 0a h. W powyższym przykładzie poprawne wyjście to 4.
Możesz napisać pełny program lub funkcję. Wygrywa najniższa liczba bajtów, a standardowe luki są niedozwolone.
Przypadki testowe
Są one podane w formacie 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