#6487. C:幻方 (Magic Square)
C:幻方 (Magic Square)
题目 C:幻方 (Magic Square)
| 属性 | 规格 |
|---|---|
| 输入文件 | 标准输入 (Standard Input) |
| 输出文件 | 标准输出 (Standard Output) |
| 时间限制 | 10 秒 |
| 内存限制 | 256 MB |
| 最大分值 | 28 分 |
题目描述
本杰明最近对“幻方”非常着迷。一个 的幻方是一个正方形网格( 为每条边的单元格数量),每个单元格内填入整数,使得每一行和每一列的整数之和都相等(注意:本题不考虑两条对角线的和)。网格中的整数不一定需要互不相同。
现在给本杰明一些 的整数网格,你需要帮他判断这些网格是否为幻方。此外,有些网格可能存在错误,你还需要判断是否仅通过修改网格中的一个整数就能使其变成幻方。
输入格式
- 第一行:一个整数 ()。
- 接下来 行:每行包含 个由空格分隔的整数,表示幻方第 行的内容。每个整数的绝对值不超过 10000。
输出格式
- 如果给定的方阵已经是幻方,第一行输出
MAGIC。 - 如果修改方阵中恰好一个数值能使其变为幻方,第一行输出
ALMOST MAGIC。并在第二行输出三个空格分隔的整数 ,表示将第 行第 列的值修改为 即可(行和列的索引从 1 开始)。如果存在多个解,输出其中任何一个即可。 - 否则,输出
NOT MAGIC。
示例
| 输入 (Standard Input) | 输出 (Standard Output) | 解释 |
|---|---|---|
32 3 69 5 11 3 9 |
NOT MAGIC |
行和、列和差异过大,无法通过改一个数修复。 |
31 1 11 1 21 1 1 |
ALMOST MAGIC2 3 1 |
将第2行第3列的2改为1,每行每列和均为3。 |
45 14 15 19 8 6 125 11 11 816 2 3 14 |
MAGIC |
每行每列之和均为 35。 |