問題一覧 > 通常問題

No.1838 Modulo Straight

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 33
作問者 : SumitacchanSumitacchan / テスター : 👑 hitonanodehitonanode 👑 ygussanyygussany
5 ProblemId : 7183 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2022-01-15 16:09:29

問題文

$M$ 未満の非負整数を $K$ 個ずつ含むような、項数 $M\times K$ の数列 $A=(A_1,A_2,\dots,A_{MK})$ が与えられます。

あなたは数列 $A$ に対して、次の操作を好きな回数($0$ 回でもよい)行うことができます。

  • 隣接する $2$ 項を入れ替える。すなわち、$1\le i\le MK-1$ なる整数 $i$ を選び、$A_i$ と $A_{i+1}$ の値を入れ替える。


数列 $A$ が次の条件を満たすようにするために必要な操作回数の最小値を求めてください。

  • 任意の整数 $i\ (1\le i\le MK-1)$ に対して、$A_{i+1} \equiv A_i+1\ (\bmod M)$ が成り立つ。

入力

$M\ \ K$
$A_1\ \ A_2\ \ \cdots\ \ A_{MK}$

  • $M\ge 2$
  • $2 \le M\times K \le 4\times 10^5$
  • 数列 $A=(A_1,A_2,\dots,A_{MK})$ は、$M$ 未満の非負整数を $K$ 個ずつ含む。
  • 入力は全て整数である。

出力

数列 $A$ が条件を満たすようにするために必要な操作回数の最小値を出力してください。

サンプル

サンプル1
入力
3 2
1 2 0 2 1 0
出力
1

$1$ 回の操作で $A=(1,2,0,1,2,0)$ にできます。

サンプル2
入力
2 3
0 0 0 1 1 1
出力
3

$3$ 回の操作で $A=(0,1,0,1,0,1)$ にできます。

サンプル3
入力
7 1
3 4 5 6 0 1 2
出力
0

最初から条件を満たしています。

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