AT_arc163_b [ARC163B] Favorite Game
Description
[problemUrl]: https://atcoder.jp/contests/arc163/tasks/arc163_b
長さ $ N $ の整数列 $ A=(A_1,A_2,\dots,A_N) $ が与えられます。あなたは、以下の操作を好きな回数($ 0 $ 回でもよい)行うことが出来ます。
- $ 1\ \le\ i\ \le\ N $ を満たす整数 $ i $ を $ 1 $ 個選び、$ A_i $ を $ 1 $ 増やすか $ 1 $ 減らす。
あなたの目標は、$ A_1\ \le\ A_i\ \le\ A_2 $ を満たす整数 $ i(3\ \le\ i\ \le\ N) $ の個数を $ M $ 個以上にすることです。目標を達成するために必要な最小の操作回数を求めてください。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ M $ $ A_1 $ $ A_2 $ $ \dots $ $ A_N $
Output Format
必要な操作回数の最小値を出力せよ。
Explanation/Hint
### 制約
- $ 3\ \le\ N\ \le\ 2\ \times\ 10^5 $
- $ 1\ \le\ M\ \le\ N-2 $
- $ 1\ \le\ A_i\ \le\ 10^9 $
### Sample Explanation 1
以下のように操作を行うことで $ A_1\ \le\ A_i\ \le\ A_2 $ を満たす整数 $ i(3\ \le\ i\ \le\ N) $ の個数を $ 1 $ 個以上に出来ます。 - $ i=3 $ を選び、$ A_i $ を $ 1 $ 減らす。 - $ i=2 $ を選び、$ A_i $ を $ 1 $ 増やす。 $ 1 $ 回以下の操作回数で目標を達成することは出来ないため、答えは $ 2 $ です。
### Sample Explanation 2
始めから目標を達成していることもあります。