CF2035H.Peak Productivity Forces

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

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

题目描述

我们处在巅峰状态,来解决一个复杂的难题。

现有两组长度为 nn 的排列 aa 和 bb。

你可以对排列 aa 进行如下操作:

  1. 选择一个索引 ii(1≤i≤n1 \le i \le n)。
  2. 将 a1,a2,…,ai−1a_1, a_2, \ldots, a_{i-1} 按循环右移一位。如果选择了 i=1i = 1,则这一部分不存在,因此无需移动。
  3. 将 ai+1,ai+2,…,ana_{i + 1}, a_{i + 2}, \ldots, a_n 按循环右移一位。如果选择了 i=ni = n,则这一部分不存在,因此也无需移动。

执行操作后,排列会从 a1,a2,…,ai−1,ai,ai+1,…,ana_1, a_2, \ldots, a_{i-1}, a_i, a_{i+1}, \ldots, a_n 变成 ai−1,a1,…,ai−2,ai,an,ai+1,…,an−1a_{i-1}, a_1, \ldots, a_{i-2}, a_i, a_n, a_{i+1}, \ldots, a_{n-1}。

以下是长度为 77 的单位排列 [1,2,3,4,5,6,7][1, 2, 3, 4, 5, 6, 7] 的一些操作示例:

  • 选择 i=3i = 3,排列变为 [2,1,3,7,4,5,6][2, 1, 3, 7, 4, 5, 6]。
  • 选择 i=1i = 1,排列变为 [1,7,2,3,4,5,6][1, 7, 2, 3, 4, 5, 6]。
  • 选择 i=7i = 7,排列变为 [6,1,2,3,4,5,7][6, 1, 2, 3, 4, 5, 7]。

注意,第 ii 个位置的元素不发生位置变化。请尝试在最多 2n2n 次操作中,使排列 aa 转换为排列 bb。如果无法实现转换,请输出 −1-1。不需要最小化操作次数。已知如果可以转换,则在不超过 2n2n 次操作内即可实现。

∗^{\text{∗}} 长度为 nn 的排列是指包含 11 到 nn 的任意顺序且互不重复的 nn 个整数组成的数组。例如,[2,3,1,5,4][2, 3, 1, 5, 4] 是一个排列,但 [1,2,2][1, 2, 2] 不是(因为 22 重复出现),[1,3,4][1, 3, 4] 也不是(因为缺少 22 且多了 44)。

输入格式

第一行包含一个整数 tt(1≤t≤5⋅1041 \le t \le 5 \cdot 10^4)——测试用例的数量。

每个测试用例的第一行包含一个整数 nn(1≤n≤5⋅1051 \le n \le 5 \cdot 10^5)——排列 aa 和 bb 的长度。

接下来的第二行包含 nn 个整数 a1,a2,…,ana_1, a_2, \ldots, a_n(1≤ai≤n1 \le a_i \le n)——排列 aa 的元素。

第三行包含 nn 个整数 b1,b2,…,bnb_1, b_2, \ldots, b_n(1≤bi≤n1 \le b_i \le n)——排列 bb 的元素。

保证所有测试用例中 nn 的总和不超过 5⋅1055 \cdot 10^5。

输出格式

对于每个测试用例:

如果可以通过一系列操作将 aa 转换为 bb,请在第一行输出一个整数 qq(0≤q≤2n0 \le q \le 2n)——操作次数,第二行输出 qq 个整数,第 ii 个整数表示第 ii 次操作选择的索引。

如果无法完成转换,输出 −1-1。

输入输出样例

  • 输入#1

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

    输出#1

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

说明/提示

在第一个测试用例中,aa 已经等于 bb,因此不需要操作。

在第二个测试用例中,可以证明 aa 无法变为 bb。

在第三个测试用例中,经过两次操作后,aa 变成了与 bb 相同的排列。

本翻译由 AI 自动生成

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

首页