CF2121D.1709

普及-

通过率:0%

AC君温馨提醒

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

题目描述

给出两个整数数组 a1,a2,…,ana_1, a_2, \ldots, a_n 和 b1,b2,…,bnb_1, b_2, \ldots, b_n 。可以保证从 11 到 2⋅n2 \cdot n 的每个整数恰好出现在其中一个数组中。

您需要执行一定数量的操作(可能为零),以同时满足以下两个条件:

  • 对于每个 1≤i<n1 \leq i < n,满足 ai<ai+1a_i < a_{i + 1} 和 bi<bi+1b_i < b_{i + 1} 。

  • 对于每个 1≤i≤n1 \leq i \leq n,满足 ai<bia_i < b_i 。

在每个操作过程中,您只能执行以下三个操作之一:

  1. 选择索引 1≤i<n1 \leq i < n 并交换 aia_i 和 ai+1a_{i + 1}。

  2. 选择索引 1≤i<n1 \leq i < n 并交换 bib_i 和 bi+1b_{i + 1}。

  3. 选择索引 1≤i≤n1 \leq i \leq n 并交换 aia_i 和 bib_i 。您不需要最大限度地减少操作次数,但总次数不得超过 17091709。

找出同时满足以下两个条件的任何操作序列。

输入格式

本题有多组测试数据

第一行包含单个整数 t(1≤t≤100)t(1 \leq t \leq 100) —测试样例的数量。测试样例的描述如下。

每个测试样例的第一行包含一个整数 n(1≤n≤40)n(1 \leq n \leq 40) —数组 aa 和 bb 的长度。

每个测试样例的第二行包含 nn 个整数 a1,a2,…,an(1≤ai≤2⋅n)a_1, a_2, \ldots, a_n(1 \leq a_i \leq 2 \cdot n) 。

每个测试样例的第三行包含 nn 个整数 b1,b2,…,bnb_1, b_2, \ldots, b_n ( 1≤bi≤2⋅n1 \leq b_i \leq 2 \cdot n )。

保证从 11 到 2⋅n2 \cdot n 的每个整数都出现在数组 aa 或数组 bb 中。

输出格式

对于每个测试样例,输出操作序列。

在每个测试样例的第一行中,输出操作的数量 kk。请注意 0≤k≤17090 \leq k \leq 1709 。在每个测试用例的以下 kk 行中,

在每个测试样例的以下 kk 行中,输出操作本身:

  • 如果要交换值 aia_i 和 ai+1a_{i + 1} ,请输出两个整数 11 和 ii。请注意 1≤i<n1 \leq i < n 。

  • 如果要交换值 bib_i 和 bi+1b_{i + 1} ,请输出两个整数 22 和 ii。请注意 1≤i<n1 \leq i < n 。

  • 如果要交换值 aia_i 和 bib_i ,请输出两个整数 33 和 ii 。请注意 1≤i≤n1 \leq i \leq n。

可以证明,在给定的约束条件下,解总是存在的。

输入输出样例

  • 输入#1

    6
    1
    1
    2
    1
    2
    1
    2
    1 3
    4 2
    2
    1 4
    3 2
    3
    6 5 4
    3 2 1
    3
    5 3 4
    2 6 1

    输出#1

    0
    1
    3 1
    1
    2 1
    1
    3 2
    9
    3 1
    3 2
    3 3
    1 1
    2 1
    2 2
    1 2
    1 1
    2 1
    6
    2 2
    1 1
    1 2
    2 1
    3 1
    3 2

说明/提示

在第一个测试样例中,a1<b1a_1 < b_1,不需要应用任何操作。

在第二个测试样例中,a1>b1a_1 > b_1,应用该操作后,将交换这些值。

在第三个测试样例中,在应用操作后,a=[1,3]a = [1, 3] 和 b=[2,4]b = [2, 4] 。

在第四个测试样例中,在应用操作之后,a=[1,2]a = [1, 2] 和 b=[3,4]b = [3, 4] 。

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

首页