#537. 「多校联考 2022 Round 2」矩阵

内存限制:256 MiB 时间限制:2000 ms 输入文件:matrix.in 输出文件:matrix.out
题目类型:传统 评测方式:Special Judge
上传者: 匿名

题目描述

小 C 在探索神代遗迹的时候,不小心触发了遗迹中的机关。

小 C 所在的房间的天花板上出现了数字 ,四壁上显露出了 4 个序列 ,地板上显露出了几句话:

提塔尔耶拉只欢迎智慧之人。

想要离开机关,就仔细观察四壁上的条件吧。

小 C 走到墙壁之前,才发现四个数字的下方,还都镌刻着一些条件。汇总起来,就是

  1. 如果 ,那么第 行按位与的结果为
  2. 如果 ,那么第 行按位或的结果为
  3. 如果 ,那么第 列按位与的结果为
  4. 如果 ,那么第 列按位或的结果为

根据这些语句可以推断,小 C 需要构造一个 的矩阵 ,满足上面的四个条件,才能解开机关,离开房间。

为了防止机关由于数据溢出而发生不可预料的结果,这个矩阵 还需要满足

当然,如果这个房间本来就不想让进入的人离开,也有可能无法构造出这样的矩阵。

你需要帮助小 C 构造出一个满足条件的矩阵,或者告诉小 C 她永远无法离开这个房间。

输入格式

从文件 中读入数据。

第一行一个正整数

第二行 个整数

第三行 个整数

第四行 个整数

第五行 个整数

输出格式

输出到文件 中。

如果存在这样的矩阵,输出 行,第 行有 个整数,第 行的第 个数字表示

如果不存在,输出一行一个整数 -1

如果有多种满足条件的矩阵,输出任意一个即可。

样例

样例 1 输入

2
1 1
1 0
15 15
15 11

样例 1 输出

15 11
15 11

样例 2

见选手目录下的

该样例满足测试点 的数据范围。

样例 3

见选手目录下的

该样例满足测试点 的数据范围。

数据范围与提示

数据范围

对于所有测试点:

每个测试点的具体限制见下表:

测试点编号 其他特殊限制

请注意 以及你要输出的 的大小可能超出了 long long 的存储范围。

校验器

为了方便选手测试,附加文件中我们给出了名为 checker.cpp 的文件,选手可以编译该程序,并使用它校验自己的输出文件。但请注意它与最终评测时所使用的校验器并不完全一致。你也不需要关心其代码的具体内容。

编译命令为:g++ -std=c++14 checker.cpp −o checker。此外,附加文件中有还有名为 testlib.h 的文件,在编译时,请确保该文件 checker.cpp 在同一子目录下。

在终端中,checker 的使用方式为:checker <输入文件名> <输出文件名> <输出文件名>。如果你的输入文件名为 matrix.in,输出文件名为 matrix.out,则正确的使用方式为 checker matrix.in matrix.out matrix.out

若你的方案正确,校验器会给出 OK,否则,该校验器会输出对应的错误信息。请注意,该校验器只能检验有解时你的程序给出的 是否合法。

请保证你的输出方案符合题目要求,否则校验器可能会输出错误的信息。