atcoder#ARC152B. [ARC152B] Pass on Path

[ARC152B] Pass on Path

题目描述

長さ L L の細長い一直線の道が東西に伸びており、この道を 2 2 人の旅人が訪れます。 この道には N N 個の休憩所があり、i i 番目の休憩所は、道の西端から ai a_i の地点にあります (ただし、どの休憩所も道の端には存在しません)。 この道はとても細いため、休憩所以外の地点で 2 2 人がすれ違ったり、横に並んで歩いたりすることはできません。

2 2 人の旅人は、この道で次のような旅をします。

  • 時刻 0 0 に、それぞれ好きな休憩所を選んで出発点とする( 2 2 人が同じ休憩所を選んでもよい)。 その後、それぞれ道の両端を訪れたあと、自身の出発点に戻る。

2 2 人は、毎秒 1 1 以下の速さで道を歩くか、休憩所で休憩することができます。 休憩所以外の地点ですれ違わない限り、旅の途中いつでも向きを変えることは可能です。 両者が道の両端を訪れて出発点に戻ってくるまで、最短で何秒かかるでしょうか。 ただし、この問題の制約下では答えが整数になることが証明できます。

输入格式

入力は以下の形式で標準入力から与えられる。

N N L L a1 a_1 a2 a_2 \ldots aN a_N

输出格式

答えを整数で出力せよ。

题目大意

有一条长度为 LL 的东西走向的小路,有两个旅行者要在这条小路上行走,路上有 nn 个休息站,第 ii 个休息站到小路最西端的距离为 aia_i(道路两端尽头处没有休息站),这条小路很窄所以两位旅行者除了在休息站不能在小路上彼此穿过或并行。

现在两人各自先任意选一个出发点(可以相同),在 00 时刻出发,以每秒最高为 11 的速度行走,到达路的东西两侧(不分先后顺序,但两边都要到),最后回到各自的出发点,中间可以在任意休息站停留任意时间或调转方向,问两人从出发到最终回到各自起始点最少需要多长时间?

2 6
2 5
14
2 3
1 2
6

提示

制約

  • 1  N  2 × 105 1\ \leq\ N\ \leq\ 2\ \times\ 10^5
  • 1  L  109 1\ \leq\ L\ \leq\ 10^9
  • 0 < a1 < a2 <  < aN < L 0\ <\ a_1\ <\ a_2\ <\ \ldots\ <\ a_N\ <\ L
  • 入力される値はすべて整数である

Sample Explanation 1

2 2 人の旅人を A、B とします。また、以下では i i 番目の休憩所を単に休憩所 i i と呼びます。 例えば、2 2 人は以下のような旅をすることができます。 最初に A が休憩所 1 1 から東側に、B が休憩所 2 2 から東側に速さ 1 1 で歩き始め、両者とも東端→西端の順に訪れることにします。 すると、B は 2 2 秒後に東端を訪れて休憩所 2 2 に戻って来ることができますが、A はまだ休憩所 1 1 2 2 の間です。 ここで B が 1 1 秒休憩すると、A も休憩所 2 2 にたどり着き、すれ違いが可能になります。 その後、再び両者が速さ 1 1 で歩き続け、A が休憩所 1 1 2 2 秒だけ休憩した場合、 B は出発から 13 13 秒後、A は 14 14 秒後に元の休憩所に戻り、旅を終えることができます。 実はこれは最善の方法の 1 1 つであり、答えは 14 14 となります。

Sample Explanation 2

この場合は、適切な方法を取ると、両者が休憩することなく速さ 1 1 で歩き続けることができます。