CF1510K.King's Task
普及-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
勇敢的骑士来到国王面前,请求允许他娶公主。国王知道骑士很勇敢,但他也想知道骑士是否足够聪明。因此,他让骑士解决如下问题。
给定一个 pi,它是 1 到 2n 的一个排列。你可以进行两种操作:
- 交换 p1 和 p2,p3 和 p4,……,p2n−1 和 p2n。
- 交换 p1 和 pn+1,p2 和 pn+2,……,pn 和 p2n。
你的任务是求出将给定排列变为升序排列所需的最小操作次数。
其实骑士并不那么聪明,但他非常有魅力,所以公主请求你帮他解决国王的难题。
输入格式
第一行包含一个整数 n(1≤n≤1000)。
第二行包含 2n 个整数 pi,表示 1 到 2n 的一个排列。
输出格式
输出一个整数,表示将排列变为升序排列所需的最小操作次数。如果无法通过上述操作使排列有序,输出 −1。
输入输出样例
输入#1
3 6 3 2 5 4 1
输出#1
3
输入#2
2 3 4 2 1
输出#2
-1
输入#3
4 1 2 3 4 5 6 7 8
输出#3
0
说明/提示
在第一个样例中,你可以通过三次操作将排列变为升序:
- 执行操作 1:3,6,5,2,1,4。
- 执行操作 2:2,1,4,3,6,5。
- 执行操作 1:1,2,3,4,5,6。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?