CF1709.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 到 2n2n 的每个整数恰好出现在这两个数组中的一个。

你需要进行若干次操作(可以为零次),使得同时满足以下两个条件:

  • 对于每个 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。请给出任意一种满足条件的操作序列。

输入格式

每组测试数据包含多个测试用例。第一行包含一个整数 tt(1≤t≤1001 \leq t \leq 100),表示测试用例的数量。接下来是每个测试用例的描述。

每个测试用例的第一行包含一个整数 nn(1≤n≤401 \leq n \leq 40),表示数组 aa 和 bb 的长度。

第二行包含 nn 个整数 a1,a2,…,ana_1, a_2, \ldots, a_n(1≤ai≤2n1 \leq a_i \leq 2n)。

第三行包含 nn 个整数 b1,b2,…,bnb_1, b_2, \ldots, b_n(1≤bi≤2n1 \leq b_i \leq 2n)。

保证从 11 到 2n2n 的每个整数恰好出现在数组 aa 或 bb 中。

输出格式

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

每个测试用例的第一行输出操作次数 kk。注意 0≤k≤17090 \leq k \leq 1709。

接下来的 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]。

由 ChatGPT 4.1 翻译

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

首页