#abc268e. [abc268_e]Chinese Restaurant (Three-Star Version)

[abc268_e]Chinese Restaurant (Three-Star Version)

問題文

回転テーブルの周りに人 00、人 11ldots\\ldots、人 N1N-1 がこの順番で反時計回りに等間隔で並んでいます。また、人 ii の目の前には料理 pip_i が置かれています。
あなたは次の操作を 00 回以上何度でも行うことが出来ます。

  • 回転テーブルを反時計回りに 11 周の frac1N\\frac{1}{N} だけ回す。これによって、(この操作の直前に)人 ii の目の前にあった料理は人 (i+1)bmodN(i+1) \\bmod N の目の前に移動する。

操作を完了させた後において、人 ii の不満度は料理 ii が人 (ik)bmodN(i-k) \\bmod N、人 (i+k)bmodN(i+k) \\bmod N のいずれかの目の前に置かれているような最小の非負整数 kk です。
NN 人の不満度の総和の最小値を求めてください。

abmodma \\bmod m とは 整数 aa と正整数 mm に対し、abmodma \\bmod maxa-xmm の倍数となるような 00 以上 mm 未満の整数 xx を表します。(このような xx は一意に定まることが証明できます)

制約

  • 3leqNleq2times1053 \\leq N \\leq 2 \\times 10^5
  • 0leqpileqN10 \\leq p_i \\leq N-1
  • ineqji \\neq j ならば pineqpjp_i \\neq p_j
  • 入力はすべて整数

入力

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

NN p0p_0 ldots\\ldots pN1p_{N-1}

出力

答えを出力せよ。


入力例 1

4
1 2 0 3

出力例 1

2

操作を 11 回行うと下の画像のようになります。

この時、不満度の総和が 22 になることを以下のように確かめられます。

  • 00 の不満度は、料理 00 が人 3(=(01)bmod4)3\\ (=(0-1) \\bmod 4) の目の前に置かれているので 11 です。
  • 11 の不満度は、料理 11 が人 1(=(1+0)bmod4)1\\ (=(1+0) \\bmod 4) の目の前に置かれているので 00 です。
  • 22 の不満度は、料理 22 が人 2(=(2+0)bmod4)2\\ (=(2+0) \\bmod 4) の目の前に置かれているので 00 です。
  • 33 の不満度は、料理 33 が人 0(=(3+1)bmod4)0\\ (=(3+1) \\bmod 4) の目の前に置かれているので 11 です。

不満度の総和を 22 より小さくすることは出来ないため、答えは 22 です。


入力例 2

3
0 1 2

出力例 2

0

入力例 3

10
3 9 6 1 7 2 8 0 5 4

出力例 3

20