236 人解决,300 人已尝试。
335 份提交通过,共有 852 份提交。
2.5 EMB 奖励。
单点时限: 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。
5 1 0 0 1 0
0 0 0 1 1
236 人解决,300 人已尝试。
335 份提交通过,共有 852 份提交。
2.5 EMB 奖励。
创建: 17 年,4 月前.
修改: 2 年,6 月前.
最后提交: 3 月,3 周前.
来源: N/A