题号:NC269402
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
Special Judge, 64bit IO Format: %lld
题目描述
给你两个长度大小为

的

数组

(指数组元素的值都为0和1)接下来,智乃将按照如下的顺序执行某些过程。
1、如果

数组中所有元素的值全部为

则打印

数组的值并退出程序
2、定义两个新的

数组

令
3、向

从数组最左侧插入一个

,向

从数组最右侧插入一个

即
![A'=[0,A'_{0},A'_{1},...,A'_{l}]](https://www.nowcoder.com/equation?tex=A'%3D%5B0%2CA'_%7B0%7D%2CA'_%7B1%7D%2C...%2CA'_%7Bl%7D%5D)
,
![B'=[B'_{0},B'_{1},...,B'_{l},0]](https://www.nowcoder.com/equation?tex=B'%3D%5BB'_%7B0%7D%2CB'_%7B1%7D%2C...%2CB'_%7Bl%7D%2C0%5D)
,

表示

数组在插入元素前的长度。
4、令
,并回到
过程。
其中
表示位运算取与,
表示位运算异或。
智乃原本通过数组

和数组

通过这一系列过程得到了打印出的结果。现在数组

分别有一些位置上的数字被使用

字符代替,但是保证不存在

数组对应下标相同的位置同时为

的情况,例如不会出现

这样的情况。
现在给你带有

字符的数组

以及经过这一过程打印出的结果

,请你告诉智乃,是否存在将

字符填充为

的

能够使得它们经过运算后打印的结果为

,若存在请任意构造一对满足题目要求的

。
输入描述:
第一行输入两个正整数
,表示
数组的原始长度。
接下来一行输入一个长度大小为
的字符串
,其中
表示数组
每个元素的值。
接下来一行输入一个长度大小为
的字符串
,其中
表示数组
每个元素的值。
接下来一行输入一个长度大小为
的
串表示该过程输出的结果。
输出描述:
如果存在这样的
,请首先输出一行一个字符串
。
接下来两行分别输出两个
串表示
的初始值。
你可以输出任何一对满足题目要求的
。
如果不存在这样的
,则只需要输出一个字符串
。
示例1
说明
假设![A=[1,1,0],B=[1,0,1]](https://hr.nowcoder.com/equation?tex=A%3D%5B1%2C1%2C0%5D%2CB%3D%5B1%2C0%2C1%5D)
第一次操作后
0110
0100
第二次操作后
00100
00100
第三次操作后
000000
000100
第四次操作后
0001000
0000000
结束算法,并打印0001000
示例3
输入
复制
5 10
?1???
0?000
1000010000