問題一覧 > 通常問題

No.1391 ±1 Abs Sum

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 80
作問者 : chineristAC / テスター : eSeF
5 ProblemId : 5481 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2021-02-13 14:13:17

問題文

はじめに整数 N, K と長さ N の単調非減少整数列 A=(A1, A2,  AN) が与えられます。

長さ N の整数列 B=(B1, B2,  BN) に対し、関数 fB(x) を以下のように定義します。

fB(x)=i=1NBi|xAi|

以下の条件を満たすすべての整数列 B に対し A1xAN における fB(x) の最小値を考え、その中の最小値を求めてください。

条件
  • i=1, 2,  N に対し |Bi|=1 が成り立つ
  • i=1, 2,  N のうち、 Bi=1 が成り立つものはちょうど K 個存在する

(21:30 単調増加整数列を単調非減少整数列に修正)

入力

N K
A1 A2  AN

  • 1N2×105
  • 0KN
  • 109Ai109 (1iN)
  • AiAi+1 (1iN1)
  • 与えられる入力はすべて整数

出力

答えを出力してください。

最後に改行してください。

サンプル

サンプル1
入力
4 2
-10 -9 2 6
出力
-27

たとえば B=(1, 1, 1, 1) とすると fB(x)x=10 で最小値 27 をとります。最小値がこれより小さくなるような B は存在しないので 27 が答えになります。

サンプル2
入力
4 0
-7 -2 2 4
出力
-25

サンプル3
入力
15 8
-99 -99 -94 -90 -85 -52 -47 -30 -19 6 12 14 28 45 100
出力
-683

提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。