#aBC268E. [ABC268E] Chinese Restaurant (Three-Star Version)

[ABC268E] Chinese Restaurant (Three-Star Version)

AT_abc268_e [ABC268E] Chinese Restaurant (Three-Star Version)

题目描述

在转盘桌的周围,按照逆时针方向等间隔地排列着人 00、人 11\ldots、人 N1N-1。此外,在人 ii 的正前方放着菜品 pip_i

你可以进行如下操作任意多次(包括 00 次):

  • 将转盘桌逆时针旋转 1N\frac{1}{N} 圈。这样一来,(在这次操作之前)人 ii 正前方的菜品会移动到人 (i+1)modN(i+1)\bmod N 的正前方。

在操作完成后,对于每个人 ii,其不满度定义为:使得菜品 ii 被放在了人 (ik)modN(i-k)\bmod N(i+k)modN(i+k)\bmod N 的正前方的最小非负整数 kk

请你求出 NN 个人的不满度总和的最小值。

amodma\bmod m 表示对于整数 aa 和正整数 mmamodma\bmod m 是满足 axa-xmm 的倍数的 00 以上小于 mm 的整数 xx。(可以证明,这样的 xx 是唯一确定的。)

输入格式

输入以以下格式从标准输入读入。

NN p0p_0 p1p_1 \ldots pN1p_{N-1}

输出格式

请输出答案。

输入输出样例 #1

输入 #1

4
1 2 0 3

输出 #1

2

输入输出样例 #2

输入 #2

3
0 1 2

输出 #2

0

输入输出样例 #3

输入 #3

10
3 9 6 1 7 2 8 0 5 4

输出 #3

20

说明/提示

限制条件

  • 3N2×1053 \leq N \leq 2 \times 10^5
  • 0piN10 \leq p_i \leq N-1
  • iji \neq j,则 pipjp_i \neq p_j
  • 输入均为整数

样例解释 1

若进行 11 次操作,情况如下图所示。

此时,不满度总和为 22,具体如下:

  • 00 的不满度为 11,因为菜品 00 被放在了人 3 (=(01)mod4)3\ (=(0-1)\bmod 4) 的正前方。
  • 11 的不满度为 00,因为菜品 11 被放在了人 1 (=(1+0)mod4)1\ (=(1+0)\bmod 4) 的正前方。
  • 22 的不满度为 00,因为菜品 22 被放在了人 2 (=(2+0)mod4)2\ (=(2+0)\bmod 4) 的正前方。
  • 33 的不满度为 11,因为菜品 33 被放在了人 0 (=(3+1)mod4)0\ (=(3+1)\bmod 4) 的正前方。

无法使不满度总和小于 22,因此答案为 22

由 ChatGPT 4.1 翻译