CF1031B Curiosity Has No Limits
题目描述
当 Masha 今天来到数学课时,她在黑板上看到了两个长度为 $n-1$ 的整数序列。我们用 $a_i$($0 \le a_i \le 3$)表示第一个序列的元素,用 $b_i$($0 \le b_i \le 3$)表示第二个序列的元素。
Masha 对是否存在一个长度为 $n$ 的整数序列感到好奇,我们用 $t_i$($0 \le t_i \le 3$)表示该序列的元素,使得对于每个 $i$($1 \le i \le n-1$),都满足以下条件:
- $a_i = t_i | t_{i+1}$(其中 $|$ 表示[按位或运算](https://en.wikipedia.org/wiki/Bitwise_operation#OR));
- $b_i = t_i \& t_{i+1}$(其中 $\&$ 表示[按位与运算](https://en.wikipedia.org/wiki/Bitwise_operation#AND))。
这个问题对 Masha 来说太难了,所以她现在请你帮忙判断是否存在这样一个长度为 $n$ 的序列 $t_i$。如果存在,请找出这样一个序列。如果有多个满足条件的序列,输出任意一个即可。
输入格式
第一行包含一个整数 $n$($2 \le n \le 10^5$),表示序列 $t_i$ 的长度。
第二行包含 $n-1$ 个整数 $a_1, a_2, \ldots, a_{n-1}$($0 \le a_i \le 3$),表示黑板上的第一个序列。
第三行包含 $n-1$ 个整数 $b_1, b_2, \ldots, b_{n-1}$($0 \le b_i \le 3$),表示黑板上的第二个序列。
输出格式
如果存在满足条件的序列 $t_i$,第一行输出 "YES"(不带引号),否则输出 "NO"(不带引号)。
如果存在这样的序列,第二行输出 $n$ 个整数 $t_1, t_2, \ldots, t_n$($0 \le t_i \le 3$),表示满足条件的序列。
如果有多个答案,输出任意一个即可。
说明/提示
在第一个样例中,很容易看出输出的序列满足给定条件:
- $t_1 | t_2 = (01_2) | (11_2) = (11_2) = 3 = a_1$,且 $t_1 \& t_2 = (01_2) \& (11_2) = (01_2) = 1 = b_1$;
- $t_2 | t_3 = (11_2) | (10_2) = (11_2) = 3 = a_2$,且 $t_2 \& t_3 = (11_2) \& (10_2) = (10_2) = 2 = b_2$;
- $t_3 | t_4 = (10_2) | (00_2) = (10_2) = 2 = a_3$,且 $t_3 \& t_4 = (10_2) \& (00_2) = (00_2) = 0 = b_3$。
在第二个样例中,不存在这样的序列。
由 ChatGPT 4.1 翻译