Вдохновленный /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 пирога (Excel повернул изображение). Вы можете видеть, что не может быть возврата выше, чем 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, так что тролль держит 0,75 (+. 25), и вы выживаете. В случае с 90 1двумя пирогами вы даете троллю 1,8 и получаете обратно 1, так что тролль держит 0,8 (+ 2), но вы умираете.