1627. Binary Code

单点时限: 2.0 sec

内存限制: 256 MB

考虑一个 $N$ 位的二进制串 $b_1 \dots b_N$ ,其对应的二进制矩阵为:

然后将这个矩阵按行升序排序,比较每行的第一列元素,如果第一列相同,再比较每行的第二列元素,依次比较。

例如:考虑二进制串 00110 ,其对应的二进制矩阵为:

0 0 1 1 0

0 1 1 0 0

1 1 0 0 0

1 0 0 0 1

0 0 0 1 1

按行升序排序后的矩阵为:

0 0 0 1 1

0 0 1 1 0

0 1 1 0 0

1 0 0 0 1

1 1 0 0 0

你的任务是编写一个程序,给定排序后的矩阵的最后一列,求出已排序的矩阵的第一行。

则该矩阵的最后一列为 1 0 0 1 0 。给出了这一列,你的程序应该确定第一行为 0 0 0 1 1

输入格式

输入第一行包含一个整数 $ N( N \leq 20000) $,表示二进制串的位数。第二行包含 $ N$ 个整数,表示已排序的矩阵的最后一列(从上到下)。

输出格式

输出文件仅一行,包含 $N$ 个整数,从左到右依次表示已排序的矩阵的第一行;若无解,则输出-1。

样例

Input
5
1 0 0 1 0
Output
0 0 0 1 1

226 人解决,286 人已尝试。

322 份提交通过,共有 820 份提交。

2.5 EMB 奖励。

创建: 16 年,9 月前.

修改: 1 年,11 月前.

最后提交: 3 天,1 小时前.

来源: N/A

题目标签
dsu