#P9293. [ROI 2018] Addition without carry

[ROI 2018] Addition without carry

背景

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

题目描述

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

给出 a1…ana_1\ldots a_n, 存在一个由数列 b1…bnb_1\ldots b_n 组成的「美丽的集合」,且满足:

∀i=1…n\forall i=1\ldots n, bi≥aib_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

提示

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

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

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

子任务 分值 nn max⁡L\max L 必须通过的子任务
1 4 n=2n=2 max⁡L≤10\max L \le 10
2 2 max⁡L≤20\max L \le 20 1
3 max⁡L≤100\max L \le 100 1,2
4 max⁡L≤1000\max L \le 1000 1--3
5 max⁡L≤300 000\max L \le 300\,000 1--4
6 4 n≤100n \le 100 max⁡L≤100\max L \le 100 保证 aia_i 是 22 的幂
7 n≤1000n \le 1000 max⁡L≤1000\max L \le 1000 6,保证 aia_i 是 22 的幂
8 n≤300 000n \le 300\,000 max⁡L≤300 000\max L \le 300\,000 6,7,保证 aia_i 是 22 的幂
9 n≤5n \le 5 max⁡L≤5\max L \le 5 U
10 max⁡L≤1 000\max L \le 1\,000 U,1--4,9
11 n≤1 000n \le 1\,000 max⁡L≤5\max L \le 5 U,9
12 n≤10n \le 10 max⁡L≤10\max L \le 10 U,1,9
13 n≤50n \le 50 max⁡L≤50\max L \le 50 U,1,2,9,12
14 7 n≤100n \le 100 max⁡L≤100\max L \le 100 U,1--3,6,9,12,13
15 n≤300n \le 300 max⁡L≤300\max L \le 300 U,1--3,6,9,12--14
16 8 n≤1000n \le 1000 max⁡L≤1000\max L \le 1000 U,1--4,6,7,9--15
17 n≤3000n \le 3000 max⁡L≤3000\max L \le 3000 U,1--4,6,7,9--16
18 6 n≤10 000n \le 10\,000 max⁡L≤10 000\max L \le 10\,000 U,1--4,6,7,9--17
19 7 n≤30 000n \le 30\,000 max⁡L≤30 000\max L \le 30\,000 U,1--4,6,7,9--18
20 n≤100 000n \le 100\,000 max⁡L≤100 000\max L \le 100\,000 U,1--4,6,7,9--19
21 6 n≤300 000n \le 300\,000 max⁡L≤300 000\max L \le 300\,000 U,1--20