問題一覧 > 通常問題

No.2382 Amidakuji M

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 127
作問者 : 箱星 / テスター : 👑 Kazun
0 ProblemId : 8717 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2023-05-19 20:17:22

問題文

はじめ数列は (1,2,,N)(1,2,\ldots,N) です。

MM の倍数 KK であって次の条件を満たすものが存在するか判定し、存在する場合は最小値を求めてください。

  • 数列の隣り合う 22 つの要素を入れ替える操作をちょうど KK 回行うことで、数列を (P1,P2,,PN)(P_1,P_2,\ldots,P_N) にできる。

制約

  • 1N2×1051\le N\le 2\times 10^5
  • 1M10181\le M\le 10^{18}
  • PP(1,2,,N)(1,2,\ldots,N) の順列
  • 入力はすべて整数

入力

NN MM
P1P_1 P2P_2 \cdots PNP_N

出力

KK の最小値を出力してください。存在しない場合は 1-1 を出力してください。

サンプル

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

(1,2,3,4)(2,1,3,4)(2,1,4,3)(2,4,1,3)(4,2,1,3)(4,1,2,3)(4,1,3,2)(1,2,3,4)\to (2,1,3,4)\to (2,1,4,3)\to (2,4,1,3)\to (4,2,1,3)\to (4,1,2,3)\to (4,1,3,2) のように 66 回の操作でできます。0,30,3 回ではできません。

サンプル2
入力
2 100
2 1
出力
-1

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

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