#6487. C:幻方 (Magic Square)

C:幻方 (Magic Square)

题目 C:幻方 (Magic Square)

属性 规格
输入文件 标准输入 (Standard Input)
输出文件 标准输出 (Standard Output)
时间限制 10 秒
内存限制 256 MB
最大分值 28 分

题目描述

本杰明最近对“幻方”非常着迷。一个 N×NN \times N 的幻方是一个正方形网格(NN 为每条边的单元格数量),每个单元格内填入整数,使得每一行和每一列的整数之和都相等(注意:本题不考虑两条对角线的和)。网格中的整数不一定需要互不相同。

现在给本杰明一些 N×NN \times N 的整数网格,你需要帮他判断这些网格是否为幻方。此外,有些网格可能存在错误,你还需要判断是否仅通过修改网格中的一个整数就能使其变成幻方。

输入格式

  • 第一行:一个整数 NN (3N1003 \le N \le 100)。
  • 接下来 NN 行:每行包含 NN 个由空格分隔的整数,表示幻方第 ii 行的内容。每个整数的绝对值不超过 10000。

输出格式

  1. 如果给定的方阵已经是幻方,第一行输出 MAGIC
  2. 如果修改方阵中恰好一个数值能使其变为幻方,第一行输出 ALMOST MAGIC。并在第二行输出三个空格分隔的整数 r,c,vr, c, v,表示将第 rr 行第 cc 列的值修改为 vv 即可(行和列的索引从 1 开始)。如果存在多个解,输出其中任何一个即可。
  3. 否则,输出 NOT MAGIC

示例

输入 (Standard Input) 输出 (Standard Output) 解释
3
2 3 6
9 5 1
1 3 9
NOT MAGIC 行和、列和差异过大,无法通过改一个数修复。
3
1 1 1
1 1 2
1 1 1
ALMOST MAGIC
2 3 1
将第2行第3列的2改为1,每行每列和均为3。
4
5 14 15 1
9 8 6 12
5 11 11 8
16 2 3 14
MAGIC 每行每列之和均为 35。