CF1510K.King's Task

普及-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

勇敢的骑士来到国王面前,请求允许他娶公主。国王知道骑士很勇敢,但他也想知道骑士是否足够聪明。因此,他让骑士解决如下问题。

给定一个 pip_i,它是 11 到 2n2n 的一个排列。你可以进行两种操作:

  1. 交换 p1p_1 和 p2p_2,p3p_3 和 p4p_4,……,p2n−1p_{2n-1} 和 p2np_{2n}。
  2. 交换 p1p_1 和 pn+1p_{n+1},p2p_2 和 pn+2p_{n+2},……,pnp_n 和 p2np_{2n}。

你的任务是求出将给定排列变为升序排列所需的最小操作次数。

其实骑士并不那么聪明,但他非常有魅力,所以公主请求你帮他解决国王的难题。

输入格式

第一行包含一个整数 nn(1≤n≤10001\le n\le 1000)。
第二行包含 2n2n 个整数 pip_i,表示 11 到 2n2n 的一个排列。

输出格式

输出一个整数,表示将排列变为升序排列所需的最小操作次数。如果无法通过上述操作使排列有序,输出 −1-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. 执行操作 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。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页