越越希望争得勇敢头衔。国王知道骑士不仅勇敢,还需要足够聪明。所以他要求越越解决以下任务。
给定一个由 1 到 2n 的数字组成的排列 p。你可以进行两种类型的操作。
交换 p 1 和 p 2 , p 3 和 p 4 ,...,
交换 p 1 和 p 1 n+1 , p 2 和 p 2 n+2 ,..., p n 和 p 2n 。 任务是找出对给定排列进行排序所需的最少操作次数。
【输入描述】: 第一行包含整数 n ( 1≤n≤1000)。
第二行包含 2n 个整数,即从 1 到 2n 的数字排列,表示 p。
【输出描述】: 打印一个整数,表示对排列进行排序所需的最少操作次数。
如果使用这些操作无法对排列进行排序,则打印 −1。
【样例输入1】:
3
6 3 2 5 4 1
【样例输出1】: 3
【样例1解释】: 在第一个示例中,你可以通过三个操作将排列排序:
进行操作 1: 3,6,5,2,1,4。
进行操作 2,1,4,3,6,5。
进行操作 1 1: 1 , 2 , 3 , 4 , 5 , 6 1,2,3,4,5,6。
【样例输入2】: 2 3 4 2 1
【样例输出2】: -1
【样例输入3】: 4 1 2 3 4 5 6 7 8
【样例输出3】: 0 【数据范围及描述】:
对于 20% 的数据: 1≤n≤10;
对于 100% 的数据: 1≤n≤1000;