atcoder#ARC131D. [ARC131D] AtArcher
[ARC131D] AtArcher
配点 : 点
問題文
りんごさんはアーチェリーの大会「AtArcher」に出場しました。
AtArcher では、数直線上に表される的に 本の矢を撃って合計得点を競います。的の中心は座標 であり、矢が当たった位置に応じて以下のように得点が定められています。
- に対して、中心からの距離が から までの場所に当てると 点を獲得し、中心からの距離が より大きい場所に当てると 点を獲得する。境界に当たった場合は高い方の得点になる。
- 中心から近いほど高得点が得られるようになっている。すなわち、次を満たす。-
例えば、 の場合、得点は下図のようになります。
さらに、AtArcher では「どの 本の矢も距離 以上の間隔を空ける」という特殊ルールがあります。これに違反した場合は失格となり、全体の得点が 点になります。
さて、りんごさんが全ての矢を撃ち終わった時点で、最大何点獲得できるでしょう?
制約
- $0 = r_0 \lt r_1 \lt \cdots \lt r_{M-1} \lt r_M \leq 10^{11}$
- $10^{11} \geq s_0 \gt s_1 \gt \cdots \gt s_{M-1} \gt 0$
- 入力はすべて整数
入力
入力は以下の形式で標準入力から与えられます。
出力
答えを出力してください。
3 3 3
0 2 7 9
100 70 30
270
この入力例は問題文中の例に対応していますが、 となっています。
例えば、 本の矢が座標 に当たると、それぞれ 点を獲得します。このとき合計得点は 点となり、実現可能なものとしては最大です。
なお、すべての矢を 点のエリアに当てて 点を取ることはできません。なぜなら、どの 本の矢も距離 以上の間隔を空けなければ、失格で 点になるからです。
3 3 8
0 2 7 9
100 70 30
200
この入力例も問題文中の例に対応していますが、 となっています。
例えば、 本の矢が座標 に当たると、それぞれ 点を獲得します。このとき合計得点は 点となり、実現可能なものとしては最大です。
7 5 47
0 10 40 100 160 220
50 25 9 6 3
111
例えば、下図のように矢を当てると、合計得点は 点となり、これが最大です。
100 1 5
0 7
100000000000
300000000000
本の矢を当てることができますが、失格にならないためには、得点が入るゾーンに 本までしか入れることができません。
15 10 85
0 122 244 366 488 610 732 854 976 1098 1220
10 9 8 7 6 5 4 3 2 1
119