CF2113F.Two Arrays
省选/NOI-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
给定两个长度为 n 的数组 a 和 b。你可以无限次进行如下操作:
- 选择一个整数 i,其中 1≤i≤n,交换 ai 和 bi。
定义 f(c) 为数组 c 中不同数字的个数。请你求出 f(a)+f(b) 的最大值,并输出所有操作后得到的数组 a 和 b。
输入格式
每组测试数据包含多组测试用例。第一行包含一个整数 t(1≤t≤104),表示测试用例的数量。
每个测试用例的第一行包含一个整数 n(1≤n≤105),表示数组的长度。
第二行包含 n 个整数 a1,a2,…,an(1≤ai≤2n),表示数组 a 的元素。
第三行包含 n 个整数 b1,b2,…,bn(1≤bi≤2n),表示数组 b 的元素。
保证所有测试用例中 n 的总和不超过 105。
输出格式
对于每个测试用例,第一行输出一个整数,表示 f(a)+f(b) 的最大值。
第二行输出 n 个整数,表示所有操作后数组 a 的元素。
第三行输出 n 个整数,表示所有操作后数组 b 的元素。
输入输出样例
输入#1
3 5 1 2 4 4 4 1 3 3 5 2 7 2 2 4 4 5 5 5 1 3 3 2 1 6 6 7 12 3 3 4 5 6 4 1 2 13 8 10 13 7
输出#1
9 1 3 4 5 2 1 2 3 4 4 12 2 3 4 2 1 5 6 1 2 3 4 5 6 5 14 12 3 13 8 10 6 4 1 2 3 4 5 13 7
说明/提示
在第一个测试用例中,经过 i=2、i=4 和 i=5 三次操作后,可以得到 a=[1,3,4,5,2],b=[1,2,3,4,4]。此时 f(a)+f(b)=5+4=9。可以证明无法得到更大的答案。
在第二个测试用例中,经过操作后有 f([2,3,4,2,1,5,6])+f([1,2,3,4,5,6,5])=6+6=12。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?