CF2121D.1709
普及-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
给出两个整数数组 a1,a2,…,an 和 b1,b2,…,bn 。可以保证从 1 到 2⋅n 的每个整数恰好出现在其中一个数组中。
您需要执行一定数量的操作(可能为零),以同时满足以下两个条件:
-
对于每个 1≤i<n,满足 ai<ai+1 和 bi<bi+1 。
-
对于每个 1≤i≤n,满足 ai<bi 。
在每个操作过程中,您只能执行以下三个操作之一:
-
选择索引 1≤i<n 并交换 ai 和 ai+1。
-
选择索引 1≤i<n 并交换 bi 和 bi+1。
-
选择索引 1≤i≤n 并交换 ai 和 bi 。您不需要最大限度地减少操作次数,但总次数不得超过 1709。
找出同时满足以下两个条件的任何操作序列。
输入格式
本题有多组测试数据
第一行包含单个整数 t(1≤t≤100) —测试样例的数量。测试样例的描述如下。
每个测试样例的第一行包含一个整数 n(1≤n≤40) —数组 a 和 b 的长度。
每个测试样例的第二行包含 n 个整数 a1,a2,…,an(1≤ai≤2⋅n) 。
每个测试样例的第三行包含 n 个整数 b1,b2,…,bn ( 1≤bi≤2⋅n )。
保证从 1 到 2⋅n 的每个整数都出现在数组 a 或数组 b 中。
输出格式
对于每个测试样例,输出操作序列。
在每个测试样例的第一行中,输出操作的数量 k。请注意 0≤k≤1709 。在每个测试用例的以下 k 行中,
在每个测试样例的以下 k 行中,输出操作本身:
-
如果要交换值 ai 和 ai+1 ,请输出两个整数 1 和 i。请注意 1≤i<n 。
-
如果要交换值 bi 和 bi+1 ,请输出两个整数 2 和 i。请注意 1≤i<n 。
-
如果要交换值 ai 和 bi ,请输出两个整数 3 和 i 。请注意 1≤i≤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<b1,不需要应用任何操作。
在第二个测试样例中,a1>b1,应用该操作后,将交换这些值。
在第三个测试样例中,在应用操作后,a=[1,3] 和 b=[2,4] 。
在第四个测试样例中,在应用操作之后,a=[1,2] 和 b=[3,4] 。
输入解题思路,AI测评打分。不知道怎么写?