AT_tenka1_2013_final_b 天下一マジック

题目描述

高桥君是某公司的总裁,他想通过表演一场魔术来活跃员工的气氛。为了让这个魔术成功,他需要在不被发现的情况下,神速地将看似随意排列的卡片排序。 卡片的数量为 $2N+1$,这是一个奇数。为了方便,每张卡片上都标有编号,从 $1$ 到 $2N+1$。高桥君可以连续执行以下两种操作来重新排列卡片。集合 $X$ 包含了从 $1$ 到 $2N$ 的整数。 **操作 1(切牌)**: 从集合 $X$ 中挑选一个数 $K$,将最前面的 $K$ 张卡片拿起,保持顺序不变地放在当前卡片的末尾。例如,如果 $K=3$,那么经过操作,卡片顺序将从 \[5, 1, 4, 7, 6, 2, 3\] 变为 \[7, 6, 2, 3, 5, 1, 4\]。 **操作 2(交替洗牌)**: 将卡片前 $N+1$ 张和剩下的 $N$ 张分开,然后从每组中轮流依次取一张,组建新的一列,从 $N+1$ 张的那组开始。例如,卡片顺序从 \[5, 1, 4, 7, 6, 2, 3\] 变为 \[5, 6, 1, 2, 4, 3, 7\]。 给定卡片的初始顺序和集合 $X$,请计算出高桥君最少需要多少次操作才能将卡片按升序排列。如果无法实现这种排列,就输出 `-1`。 - 如果能解决 $1 \leq N \leq 4$ 且 $X = \{1\}$ 的情况,你将获得满分 $200$ 分中的 $20$ 分。 - 如果能解决 $1 \leq N \leq 2013$ 且 $X = \{1\}$ 的情况,可以额外获得 $80$ 分。 - 对于 $0 \leq N \leq 2013$ 且 $0 \leq M < 2N+1$ 的各类情况,剩余的 $100$ 分将被给予。 输出要求的最小操作次数。如果无法完成排序,输出 `-1`。记得在输出的最后留一个换行。 ## 示例 输入: ``` 1 1 3 2 1 1 ``` 输出: ``` 2 ``` 输入: ``` 2 1 3 2 5 1 4 1 ``` 输出: ``` -1 ``` - 这种排列无法通过任何操作达到升序。 输入: ``` 2 1 4 2 5 3 1 1 ``` 输出: ``` 4 ``` - 可以按以下步骤完成: - 施行操作 2:\[4, 2, 5, 3, 1\] → \[4, 3, 2, 1, 5\] - 再次操作 2:\[4, 3, 2, 1, 5\] → \[4, 1, 3, 5, 2\] - 施行操作 1,$K=1$:\[4, 1, 3, 5, 2\] → \[1, 3, 5, 2, 4\] - 再次操作 2:\[1, 3, 5, 2, 4\] → \[1, 2, 3, 4, 5\] 输入: ``` 3 1 1 2 3 4 5 6 7 1 ``` 输出: ``` 0 ``` - 卡片最初就已经按升序排列,所需操作次数为 0。 输入: ``` 4 2 2 3 4 5 6 7 8 9 1 1 6 ``` 输出: ``` 3 ``` - 通过以下步骤实现: - 操作 1,$K=1$:\[2, 3, 4, 5, 6, 7, 8, 9, 1\] → \[3, 4, 5, 6, 7, 8, 9, 1, 2\] - 操作 1,$K=6$:\[3, 4, 5, 6, 7, 8, 9, 1, 2\] → \[9, 1, 2, 3, 4, 5, 6, 7, 8\] - 操作 1,$K=1$:\[9, 1, 2, 3, 4, 5, 6, 7, 8\] → \[1, 2, 3, 4, 5, 6, 7, 8, 9\]

输入格式

第一行包含两个整数 $N$ 和 $M$,分别表示卡片数量的一半和集合 $X$ 的元素个数。 第二行是卡片的初始排列。 第三行给出集合 $X$ 中的元素。

输出格式

输出一个整数,表示将卡片排列为升序所需的最少操作次数。如果无法完成,输出 `-1`。

说明/提示

- $0 \leq N \leq 2013$ - $0 \leq M < 2N+1$ **本翻译由 AI 自动生成**