Натхненний /puzzling//q/626
У своїх пригод ви потрапляєте на серію з 7 мостів, які вам доведеться перетнути. Під кожним мостом живе троль. Для того, щоб перейти міст, потрібно спершу дати тролю кількість тортів у відсотках від кількості тортів, які ви носите. Оскільки це добрі тролі, вони повернуть вам певну кількість тортів.
На початку кожного дня місцевий король тролів встановлює відсотковий податок на торт, який повинен сплатити кожен мандрівник, і повернення торта з тролею - кількість тортів, які кожен троль повинен повернути мандрівникам.
Ваше завдання - обчислити мінімальну кількість тортів, необхідних для проходження всіх 7 троль-мостів за даними умовами в цей день.
Припустимо:
- Два вхідні параметри: відсотковий податок на торт (ціле число від 0 до 100) та повернення торта з тролею.
- Ніхто, навіть тролі, не хоче торт, частково з'їдений іншим троллем. Якщо вам залишилася частка торта, тролл отримує його.
- Якщо троль прийме податок на торт, але потім повинен повернути вам всі тістечка (залишиться з тими ж або меншими тортами, ніж раніше), він розсердиться і з'їсть вас і ваші пиріжки.
- Кожен троль повинен зберігати хоча б один повний торт.
- Ви можете носити максимум 100 тортів.
- Вам потрібно закінчити день, де ви зараз перебуваєте, або з іншого боку всіх 7 мостів.
Виклик:
Напишіть повну програму, щоб вивести мінімальну кількість тортів для подорожі за поточний день або нуль, якщо сьогодні не можна безпечно подорожувати - ви будете чекати, щоб побачити, які цифри будуть завтра.
Введення має бути передано як stdin, аргументи командного рядка або введення файлу.
Найкоротший код (кількість байтів) виграє.
Приклад:
25% податку на торт, повернення 2 тортів.
почніть з 19 тортів
перед троллем 1: (19 * 0,75) = 14,25
після троля 1: (14 + 2) = 16
перед троллем 2: (16 * 0,75) = 12
після троля 2: (12 + 2) = 14
тощо.
19 тортів -> 16 -> 14 -> 12 -> 11 -> 10 -> 9 -> 8
18 тортів -> 15 -> 13 -> 11 -> 10 -> 9 -> 8 -> 8 (правило 3)
За 18 тортів останній троль не міг би зберегти жодного торта. Тому мінімальна кількість тортів на 25% / 2 день - 19.
input: 25 2
output: 19
Приклад 2:
90% податку на торт, повернення 1 торта з троля
100 тортів -> 11 -> 2 -> 1 (правило 4)
Третій троль не зміг зберегти жодного торта. Тому не можна їздити на 90% / 1 день, навіть починаючи з максимальної кількості тортів.
input: 90 1
output: 0
Дані
Складіть швидкий графік вхідних та вихідних значень. Я був здивований, що це не "гладко" (як крива дзвіночка чи подібне); є кілька помітних островів.

Дані для зацікавлених. Стовпці поділяються на 5% інтервалів, рядки - це одиниці з 1 інтервалом повернення торта (відмінно повернути зображення). Ви можете бачити, що повернення не може перевищувати 28 тортів.
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 тортами ви даєте тролеві 2,75 пирогів і отримуєте назад 2, щоб троль тримався .75 (+. 25), і ви виживаєте. У випадку з 90 12 пирогами ви даєте тролі 1,8 і отримуєте назад 1, щоб троль тримався .8 (+. 2), але ви помираєте.