#CF1328C. 三进制 XOR

三进制 XOR

题目描述

每个测试的时间限制:1 秒
每个测试的内存限制:256 兆字节

如果一个数只包含数字 001122,则称它为三进制数。例如,以下数是三进制数:102210221111212120022002

你得到一个很长的三进制数 xxxx 的第一位(最左边)保证是 22,其余位可以是 001122

定义两个三进制数 aabb(长度均为 nn)的三进制异或运算 aba \odot b 为长度 nn 的数 cc,其中 ci=(ai+bi)mod3c_i = (a_i + b_i) \bmod 3mod\bmod 表示取模运算)。换句话说,将对应位相加,然后取和除以 33 的余数。例如,1022211021=2121010222 \odot 11021 = 21210

你的任务是找到两个三进制数 aabb,长度均为 nn,都没有前导零,满足 ab=xa \odot b = x,并且 max(a,b)\max(a, b) 尽可能小。

如果有多个答案,输出任意一组即可。

你需要回答 tt 组独立的测试用例。

输入格式

第一行包含一个整数 tt1t1041 \le t \le 10^4)—— 测试用例的数量。接下来是 tt 个测试用例。

每个测试用例的第一行包含一个整数 nn1n51041 \le n \le 5 \cdot 10^4)—— xx 的长度。

第二行包含一个由 nn 个数字 001122 组成的三进制数 xx。保证 xx 的第一位是 22。保证所有测试用例的 nn 之和不超过 51045 \cdot 10^4n5104\sum n \le 5 \cdot 10^4)。

输出格式

对于每个测试用例,输出答案 —— 两个三进制数 aabb,长度均为 nn,且都没有前导零,使得 ab=xa \odot b = x,并且 max(a,b)\max(a, b) 尽可能小。如果有多个答案,输出任意一组即可。

4
5
22222
5
21211
1
2
9
220222021
11111
11111
11000
10211
1
1
110111011
110111010