atcoder#AGC022D. [AGC022D] Shopping
[AGC022D] Shopping
配点 : 点
問題文
ユイは買い物好きです。ユイはヤマボシ市に住んでいて、この市では鉄道が運行しています。ヤマボシ市はとても長い数直線としてモデル化することができ、ユイの家は座標 にあります。
ヤマボシ市には 件のショッピングセンターがあり、それぞれ座標 にあります。鉄道の駅は 駅あり、座標 に一駅、座標 に一駅、そして各ショッピングセンターに一駅ずつあります。
時刻 に、鉄道列車が座標 から正の方向に出発します。列車は毎秒 単位距離という一定の速さで移動します。時刻 に、列車は終着駅、すなわち座標 の駅に到着します。その直後に、列車は反対の方向に同じ速さで走り始めます。時刻 に、列車は座標 の駅に到着し、再び反対の方向に走り始めます。この行程が永遠に繰り返されます。
列車がユイのいる駅に到着したとき、ユイは直ちに列車に乗ったり降りたりすることができます。時刻 には、ユイは座標 の駅にいます。
ユイは 件すべてのショッピングセンターに買い物に行きたいです。順番はなんでもよく、買い物が終わったら帰りたいです。座標 のセンターでの買い物には 秒がかかります。あるセンターで買い物を始めたら、次のセンターに行く前にそこでの買い物を完了しなければなりません。 センターのある駅に到着したら直ちに買い物を始めることができ、買い物が終わったら直ちに電車に乗ることができます。
ユイは、買い物にかかる時間を最短にしたいです。最短で何秒で買い物を済ませられるか、ユイが判断するのを手伝ってくれませんか?
制約
- 入力中のすべての値は整数である。
部分点
- を満たすデータセットに正解すると、 点が与えられる。
入力
入力は標準入力から以下の形式で与えられる。
出力
ユイが 件すべてのショッピングセンターで買い物を済ませて帰宅するまでに必要な最短の時間を(秒単位で)出力せよ。
2 10
5 8
10 4
40
ユイが買い物を済ませる行程の例を示します。
- 列車で座標 の駅まで移動する。時刻 に座標 に到着する。
- 座標 のショッピングセンターで買い物をする。時刻 に買い物が完了する。
- 時刻 に電車が座標 に到着する。負の方向に進んでいる電車に乗る。
- 時刻 に座標 に到着する。時刻 に買い物が完了する。
- 時刻 に電車が座標 に到着する。正の方向に進んでいる電車に乗る。
- 時刻 に座標 に到着する。列車は直ちに反対方向に走り始める。
- 時刻 に座標 に到着し、行程を終了する。
2 10
5 8
10 5
60
5 100
10 19 28 47 68
200 200 200 200 200
1200
8 1000000000
2018 123456 1719128 1929183 9129198 10100101 77777777 120182018
99999999 1000000000 1000000000 11291341 1 200 1 123812831
14000000000
オーバーフローにご注意。