/puzzling//q/626に触発された
あなたの冒険では、あなたが渡らなければならない一連の7つの橋に到着します。各橋の下にはトロルが住んでいます。橋を渡るには、最初にトロールにいくつかのケーキを運んでいるケーキの数の割合として与える必要があります。これらは親切なトロルであるため、一定数のケーキをあなたに返します。
毎日の初めに、地元のトロール王は、各旅行者が支払う必要のあるケーキ税の割合と、トロールケーキの払い戻し-各トロールが旅行者に返さなければならないケーキの数を設定します。
あなたの仕事は、その日に与えられた条件で7つのトロル橋すべてを通過するために必要なケーキの最小数を計算することです。
仮定:
- 2つの入力パラメータ:ケーキ税率(0〜100の整数)、およびトロールケーキの払い戻し。
- 誰も、トロルでさえ、ケーキを別のトロルに部分的に食べて欲しくない。ケーキの一部が残っている場合、トロールはそれを取得します。
- トロルがケーキ税を受け入れても、すべてのケーキを返さなければならない場合(以前と同じか少ないケーキが残っている)、怒ってあなたとあなたのケーキを食べます。
- すべてのトロールは、少なくとも1つの完全なケーキを保持する必要があります。
- 最大100個のケーキしか持てません。
- あなたが現在いる、または7つの橋すべての反対側にいる日を終わらせる必要があります。
チャレンジ:
現在の日に移動するケーキの最小数を出力する完全なプログラムを作成するか、今日安全に移動できない場合はゼロを出力します。明日の数字がわかるまでお待ちください。
入力は、stdin、コマンドライン引数、またはファイル入力として渡す必要があります。
最短のコード(バイトカウント)が優先されます。
例:
25%のケーキ税、2トロールケーキの払い戻し。
トロール1の前に19個のケーキから開始:
トロール1の後の(19 * 0.75)= 14.25 :(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)
3番目のトロールはケーキを保持できませんでした。そのため、最大数のケーキで始めても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ケーキを与え、トロールは(+。25)0.75を保つように、バック2を取得し、あなたが生き残ります。で90 12ケーキの場合、あなたはトロール1.8を与え、トロールは(+ 2)0.8に保つように、バック1を得るが、あなたは死にます。