Inspirowany /puzzling//q/626
W swoich przygodach dochodzisz do serii 7 mostów, które musisz pokonać. Pod każdym mostem mieszka troll. Aby przejść przez most, musisz najpierw dać trollowi liczbę ciastek jako procent liczby ciast, które nosisz. Ponieważ są to miłe trolle, oddadzą ci pewną liczbę ciastek.
Na początku każdego dnia lokalny król trolli ustala procent podatku od tortów, który każdy podróżny musi zapłacić, oraz zwrot kosztu trolli - liczbę ciast, które każdy troll musi zwrócić podróżnym.
Twoim zadaniem jest obliczenie minimalnej liczby ciastek potrzebnych do przejścia wszystkich 7 mostów trolli dla danych warunków w danym dniu.
Założyć:
- Dwa parametry wejściowe: procent podatku od ciasta (liczba całkowita od 0 do 100) i zwrot ciasta za troll.
- Nikt, nawet trolle, nie chce ciasta częściowo zjedzonego przez innego trolla. Jeśli zostanie ci ułamek ciasta, troll go dostanie.
- Jeśli troll zaakceptuje podatek od ciast, ale potem będzie musiał oddać ci wszystkie ciastka (pozostanie z tymi samymi lub mniejszymi ciastami niż wcześniej), rozzłości się i zje ciebie oraz twoje ciastka.
- Każdy troll musi zachować co najmniej jedno pełne ciasto.
- Możesz przewozić maksymalnie 100 ciastek.
- Musisz zakończyć dzień, w którym aktualnie się znajdujesz lub po drugiej stronie wszystkich 7 mostów.
Wyzwanie:
Napisz kompletny program, który wyświetli minimalną liczbę ciastek do przejechania w bieżącym dniu lub zero, jeśli dzisiaj nie będzie można bezpiecznie podróżować - poczekasz, aby zobaczyć, jakie będą liczby jutro.
Dane wejściowe należy przekazywać jako stdin, argumenty wiersza poleceń lub dane wejściowe pliku.
Najkrótszy kod (liczba bajtów) wygrywa.
Przykład:
25% podatku od ciast, zwrot 2 ciastek trolli.
zacznij od 19 ciast
przed trollem 1: (19 * 0,75) = 14,25
po trollem 1: (14 + 2) = 16
przed trollem 2: (16 * 0,75) = 12
po trollem 2: (12 + 2) = 14
itp.
19 ciast -> 16 -> 14 -> 12 -> 11 -> 10 -> 9 -> 8
18 ciast -> 15 -> 13 -> 11 -> 10 -> 9 -> 8 -> 8 (reguła 3)
W przypadku 18 ciast ostatni troll nie zdoła zatrzymać ciastek. Dlatego minimalna liczba ciastek na 25% / 2 dni wynosi 19.
input: 25 2
output: 19
Przykład 2:
90% podatku od ciast, zwrot 1 ciasta na trolla
100 ciastek -> 11 -> 2 -> 1 (reguła 4)
Trzeci troll nie zdążył zatrzymać ciasta. Dlatego nie można podróżować w 90% / 1 dniu, nawet zaczynając od maksymalnej liczby ciastek.
input: 90 1
output: 0
Dane
Przygotuj szybki wykres wartości wejściowych i wyjściowych. Byłem zaskoczony, że nie było to „gładkie” (jak krzywa dzwonowa lub podobna); jest kilka zauważalnych wysp.

Dane dla zainteresowanych. Kolumny są podzielone na 5% przedziały, rzędy to jednostki 1 odstępu zwrotu ciasta (excel obrócił obraz). Widać, że zwrot nie może przekroczyć 28 ciast.
27, 17, 13, 14, 15, 18, 20, 24, 53, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
47, 27, 20, 19, 19, 19, 24, 39, 48, 68, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0
67, 37, 28, 24, 23, 28, 27, 29, 50, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
87, 47, 33, 29, 27, 28, 31, 44, 37, 72, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 57, 40, 34, 31, 29, 34, 34, 62, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 67, 48, 39, 35, 38, 37, 49, 57, 76, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 77, 53, 44, 39, 38, 47, 39, 59, 78, 94, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 87, 60, 49, 43, 39, 40, 54, 46, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 97, 68, 54, 47, 48, 44, 44, 71, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 73, 59, 51, 48, 47, 59, 73, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 80, 64, 55, 49, 51, 49, 68, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 88, 69, 59, 58, 54, 64, 70, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 93, 74, 63, 58, 57, 54, 57, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 100, 79, 67, 59, 67, 69, 82, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 84, 71, 68, 60, 59, 77, 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 89, 75, 68, 64, 74, 79, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 94, 79, 69, 67, 64, 66, 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 99, 83, 78, 71, 79, 91, 100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 87, 78, 74, 69, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 91, 79, 77, 84, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 95, 88, 87, 74, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 99, 88, 80, 89, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 89, 84, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 98, 87, 94, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 98, 91, 84, 99, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 99, 94, 99, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 97, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
25 211 tortów dajesz trollowi 2,75 ciasta i odzyskujesz 2, aby troll zachował 0,75 (+. 25) i przeżyłeś. W przypadku 90 12 ciastek dajesz trollowi 1.8 i odzyskujesz 1, więc troll utrzymuje 0,8 (+. 2), ale umierasz.