#P12910. [NERC 2020] King's Task

    ID: 12727 远端评测题 3000ms 512MiB 尝试: 0 已通过: 0 难度: 5 上传者: 标签>2020广度优先搜索 BFSICPCNERC/NEERC

[NERC 2020] King's Task

Description

勇敢的骑士来到国王面前,请求迎娶公主。国王知道骑士很勇敢,但他还想确认骑士是否足够聪明。于是国王给骑士布置了以下任务:

有一个从 112n2n 的数字排列 pip_i。你可以进行两种操作:

  1. 交换 p1p_1p2p_2p3p_3p4p_4、...、p2n1p_{2n-1}p2np_{2n}(即相邻两两交换)。
  2. 交换 p1p_1pn+1p_{n+1}p2p_2pn+2p_{n+2}、...、pnp_np2np_{2n}(即前半部分与后半部分对应位置交换)。

任务要求找到将给定排列排序所需的最少操作次数。

实际上骑士并没有那么聪明,但他很有魅力,所以公主请你帮助他完成国王的任务。

Input Format

第一行包含整数 nn1n10001 \le n \le 1000)。
第二行包含 2n2n 个整数 pip_i —— 表示从 1 到 2n2n 的一个排列。

Output Format

输出一个整数 —— 将排列排序所需的最少操作次数。如果无法通过这些操作将排列排序,则输出 1-1

3
6 3 2 5 4 1
3
2
3 4 2 1
-1
4
1 2 3 4 5 6 7 8
0

Hint

在第一个样例中,可以通过三次操作将排列排序:

  1. 执行操作 1:3,6,5,2,1,43, 6, 5, 2, 1, 4
  2. 执行操作 2:2,1,4,3,6,52, 1, 4, 3, 6, 5
  3. 执行操作 1:1,2,3,4,5,61, 2, 3, 4, 5, 6

翻译由 DeepSeek V3 完成