#P9293. [ROI 2018] Addition without carry

[ROI 2018] Addition without carry

题目背景

译自 ROI 2018 Day2 T4. Сложение без переносов (Addition without carry)。

题目描述

对于一个只含自然数的集合,如果集合中所有数之和 = 集合中所有数的 OR\mathtt{OR} 和,那么我们称之为「美丽的集合」。

给出 a1ana_1\ldots a_n, 存在一个由数列 b1bnb_1\ldots b_n 组成的「美丽的集合」,且满足:

i=1n\forall i=1\ldots nbiaib_i\geq a_i, 且 bi\sum b_i 最小。

试求出新数列的 bi\sum b_i

为了简便起见,我们给出的 aia_i 均为二进制形式,你的答案也应是二进制形式。

输入格式

第一行一个整数 nn

接下来 nn 行,一行一个二进制数 aia_i

输出格式

输出得出的二进制的 bi\sum b_i

2
10
10
110
2
10100
1001
11101
3
1
1
110
1011

提示

对于所有的数据,1n3×1051 \leq n \leq 3 \times 10^5

(在二进制下)aia_i 的位数不超过 3×1053 \times 10^5,并且所有 aia_i 的位数之和不超过 3×1053\times 10^5

子任务依赖仅供参考,洛谷评测时无子任务依赖。

子任务 分值 nn maxL\max L 必须通过的子任务
1 4 n=2n=2 maxL10\max L \le 10
2 2 maxL20\max L \le 20 1
3 maxL100\max L \le 100 1,2
4 maxL1000\max L \le 1000 1--3
5 maxL300000\max L \le 300\,000 1--4
6 4 n100n \le 100 maxL100\max L \le 100
7 n1000n \le 1000 maxL1000\max L \le 1000 6
8 n300000n \le 300\,000 maxL300000\max L \le 300\,000 6,7
9 n5n \le 5 maxL5\max L \le 5 U
10 maxL1000\max L \le 1\,000 U,1--4,9
11 n1000n \le 1\,000 maxL5\max L \le 5 U,9
12 n10n \le 10 maxL10\max L \le 10 U,1,9
13 n50n \le 50 maxL50\max L \le 50 U,1,2,9,12
14 7 n100n \le 100 maxL100\max L \le 100 U,1--3,6,9,12,13
15 n300n \le 300 maxL300\max L \le 300 U,1--3,6,9,12--14
16 8 n1000n \le 1000 maxL1000\max L \le 1000 U,1--4,6,7,9--15
17 n3000n \le 3000 maxL3000\max L \le 3000 U,1--4,6,7,9--16
18 6 n10000n \le 10\,000 maxL10000\max L \le 10\,000 U,1--4,6,7,9--17
19 7 n30000n \le 30\,000 maxL30000\max L \le 30\,000 U,1--4,6,7,9--18
20 n100000n \le 100\,000 maxL100000\max L \le 100\,000 U,1--4,6,7,9--19
21 6 n300000n \le 300\,000 maxL300000\max L \le 300\,000 U,1--20