AT_past202107_h 折れ線グラフ

Description

[problemUrl]: https://atcoder.jp/contests/past202107-open/tasks/past202107_h 高橋君は、折れ線グラフを描く次のような宿題を先生から与えられました。 1. $ N $ 個の非負整数 $ A_1,\ A_2,\ \ldots,\ A_N $ が与えられる。ただし、$ A_1\ =\ A_N\ =\ 0 $ が成り立つ。 2. $ i\ =\ 1,\ 2,\ \ldots,\ N $ について、二次元平面上の座標 $ (i,\ A_i) $ に点 $ P_i $ を打つ。 3. $ i\ =\ 1,\ 2,\ \ldots,\ N-1 $ について、点 $ P_i $ と点 $ P_{i+1} $ を結ぶ線分を描く。 高橋君は宿題を早く済ませたいので、$ A_1,\ A_2,\ \ldots,\ A_N $ の値をこっそり変更して、 描く線分の長さの総和を小さくしようと思います。 しかし、こっそり値を変更したことを先生に気づかれないためには、 $ A_1,\ A_2,\ \ldots,\ A_N $ の変更後の値をそれぞれ $ B_1,\ B_2,\ \ldots,\ B_N $ とするとき、 以下の条件をすべて満たす必要があります。 - $ B_1,\ B_2,\ \ldots,\ B_N $ はすべて非負整数である。 - $ A_1 $ と $ A_N $ の値は変更してはならない。すなわち、$ B_1\ =\ B_N\ =\ 0 $ が成り立つ。 - $ \sum_{i=1}^{N}\ A_i\ =\ \sum_{i=1}^{N}\ B_i $ 高橋君が先生に気づかれないように $ A_1,\ A_2,\ \ldots,\ A_N $ の値を適切に変更するとき、 高橋君が描く線分の長さの総和の最小値を求めてください。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ N $ $ A_1 $ $ A_2 $ $ \ldots $ $ A_N $

Output Format

答えを出力せよ。 想定解答との絶対誤差または相対誤差が $ 10^{-5} $ 以下であれば正解として扱われる。

Explanation/Hint

### 注意 この問題に対する言及は、2021/7/17 18:00 JST まで禁止されています。言及がなされた場合、賠償が請求される可能性があります。 試験後に総合得点や認定級を公表するのは構いませんが、どの問題が解けたかなどの情報は発信しないようにお願いします。 ### 制約 - $ 2\ \leq\ N\ \leq\ 100 $ - $ 0\ \leq\ A_i\ \leq\ 100 $ - $ A_1\ =\ A_N\ =\ 0 $ - $ \sum_{i=1}^N\ A_i\ \leq\ 100 $ - 入力はすべて整数である。 ### Sample Explanation 1 高橋君は、$ A_2 $ を $ 1 $ に、$ A_3 $ を $ 2 $ に変更することで、線分の長さの総和を最小にできます。