#ddcc2016finalb. [ddcc_2016_final_b]デュアルカット
[ddcc_2016_final_b]デュアルカット
問題文
半径 の_ウェーハ_を水平方向に等間隔で切って 分割することにしました。ウェーハとは、ある部品を作るのに使われる薄い円盤状の物体です。
ウェーハを等間隔で 分割するための_カットライン_と呼ばれる線が 本あります。 カットラインには上から順に の番号が付いています。 また、下図に示されるように 以下や 以上の番号のカットラインも便宜上存在することにします。
ウェーハを 分割するために_デュアルカット_という手法を用いることにしました。
デュアルカットでは、カットラインに対してカットという操作を何度か行います。 回のカットでは、 枚の刃を使用して 本のカットラインを同時に切断します。 切断に用いる機械の制約上、 本のカットラインは一定以上離れている必要があります。 より正確には、同時に切断する 本のカットラインの番号をそれぞれ とすると、 を満たしていなければなりません。 この問題では、同じカットラインを 回以上切断したり、 以下や 以上の番号のカットラインを切断したりしても構いません。
番と 番のカットラインを同時に切るときの_カット長_は、 本のカットラインの長さのうちの長い方の長さで表されます。 ここで 番のカットラインの長さとは 番のカットラインで示される直線とウェーハの共通部分の線分の長さであり、それ以外の 番や 番などのカットラインの長さは です。
機械の動作の具体例を示します。 のときに として機械を稼働させると、下図(左)のように 番と 番のカットラインがカットされます。このときのカット長は 番のカットラインの方が 番のカットラインより長いため、 番のカットラインの長さとなります。カットラインの長さは図中で赤色の実線で示されています。 ここで、下図(右)のような といった操作は を満たさないため、行うことができないことに注意してください。
番のカットラインそれぞれ 回以上切断するとウェーハを 分割することが出来ます。 うまく機械を操作することで、ウェーハを 分割するときのカット長の総和を最小化したいです。 カット長の総和の最小値を求めてください。
制約
- は整数
部分点
- を満たすデータセットに正解した場合は、 点が与えられる。
- 追加制約のないデータセットに正解した場合は、上記とは別に 点が与えられる。
入力
入力は以下の形式で標準入力から与えられる。
出力
答えを 行で出力せよ。絶対誤差、あるいは相対誤差が 以下であれば許容される。
入力例 1
100 4 1
出力例 1
373.2050807569
以下のようにカットするのが最適な操作の手順の つです。
- 番と 番のカットラインを切断する
- 番と 番のカットラインを切断する
このケースは部分点の制約を満たします。
入力例 2
100 4 3
出力例 2
546.4101615138
以下のようにカットするのが最適な操作の手順の つです。
- 番と 番のカットラインを切断する
- 番と 番のカットラインを切断する
- 番と 番のカットラインを切断する
が入力例 と異なり であるため、 番と 番を同時に切断することや、 番と 番を同時に切断することなどは、機械の制約上指定できないことに注意してください。
入力例 3
43 65 12
出力例 3
2208.8155789165
入力例 4
1000 1000 999
出力例 4
1570743.7385010704