Erdrutsche
In dieser Herausforderung besteht Ihre Aufgabe darin, das Ausmaß der durch einen massiven Erdrutsch verursachten Schäden vorherzusagen. Wir verwenden das folgende vereinfachte zweidimensionale Modell, das durch eine Anfangshöhe h >= 0 und einen kritischen Koeffizienten parametrisiert wird c > 0. Sie beginnen mit einer hohen Klippe h, und es wird angenommen, dass das Gelände links und rechts davon unendlich flach ist. Für h = 6sieht die Situation so aus:
##########
##########
##########
##########
##########
##########
-----------------------
Das -sind unbewegliche Grundgesteine und der #Boden ist instabil. Beträgt der Höhenunterschied zwischen zwei benachbarten Spalten mehr als c, kommt es zu einem Erdrutsch : Die obersten cBodeneinheiten der linken Spalte fallen zu den nächsten cSpalten rechts hinunter , eine zu jeder. Die am weitesten rechts stehende nicht leere Spalte in der Abbildung ist instabil c = 2, daher wird ein Erdrutsch ausgelöst:
#########
#########
##########
##########
##########
############
-----------------------
Die Säule ist immer noch instabil, was einen zweiten Erdrutsch verursacht:
#########
#########
#########
#########
############
############
-----------------------
Jetzt ist die linke Spalte instabil geworden, sodass dort ein neuer Erdrutsch ausgelöst wird:
########
########
#########
###########
############
############
-----------------------
Danach ist die Klippe wieder stabil. Das Schöne an diesem Modell ist, dass die Reihenfolge, in der die Erdrutsche verarbeitet werden, keine Rolle spielt: Das Endergebnis ist dasselbe.
Die Aufgabe
Ihr Programm erhält die ganzzahligen Parameter hund cals Eingaben (die Reihenfolge spielt keine Rolle, aber Sie müssen sie in Ihrer Antwort angeben) und es sollte die Gesamtzahl der Spalten ausgeben , die vom Erdrutsch betroffen sind. Dies bedeutet die Anzahl der Spalten in der resultierenden stabilen Klippe, deren Höhe genau zwischen 0und liegt h. Im obigen Beispiel ist die korrekte Ausgabe 4.
Sie können ein vollständiges Programm oder eine Funktion schreiben. Die niedrigste Byteanzahl gewinnt, und Standardlücken sind nicht zulässig.
Testfälle
Diese sind im Format angegeben 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