atcoder#ARC138A. [ARC138A] Larger Score

[ARC138A] Larger Score

配点 : 400400

問題文

長さ NN の整数列 A=(A1,A2,,AN)A=(A_1,A_2,\cdots,A_N) があります. 以降この問題では,AA の先頭 KK 項の和を スコア と呼ぶことにします. また,入力で与えられた AA のスコアを ss と置くことにします.

あなたは,以下の操作を好きな回数繰り返すことができます.

  • AA のある隣接する 22 要素を選び,それらの値を入れ替える.

あなたの目標は,スコアを s+1s+1 以上にすることです. 目標が達成可能であるかどうか判定し,また可能であるなら必要な最小の操作回数を求めてください.

制約

  • 2N4×1052 \leq N \leq 4 \times 10^5
  • 1KN11 \leq K \leq N-1
  • 1Ai1091 \leq A_i \leq 10^9
  • 入力される値はすべて整数

入力

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

NN KK

A1A_1 A2A_2 \cdots ANA_N

出力

目標が達成可能でない場合,-1 を出力せよ. 可能である場合,必要な最小の操作回数を出力せよ.

4 2
2 1 1 2
2

まず,s=2+1=3s=2+1=3 です. 以下のように操作することで,スコアを 44 以上にすることができます.

  • (2,1,1,2)(A3(2,1,1,2) \to (A_3A4A_4 の値を入れ替える )(2,1,2,1)(A2)\to (2,1,2,1) \to (A_2A3A_3 の値を入れ替える )(2,2,1,1))\to (2,2,1,1)

11 回の操作では目標を達成できないため,必要な最小の操作回数は 22 になります.

3 1
3 2 1
-1
20 13
90699850 344821203 373822335 437633059 534203117 523743511 568996900 694866636 683864672 836230375 751240939 942020833 865334948 142779837 22252499 197049878 303376519 366683358 545670804 580980054
13