Sudoku
时间限制:1秒 内存限制:256M
题目描述
数独是一款逻辑推理类游戏,玩家的任务是用数字 \(1\sim9\) 填满一个 \(9\times9\) 的网格,使其满足以下条件:
- 数字 \(1\sim 9\) 在每一行恰好出现一次。
- 数字 \(1\sim 9\) 在每一列恰好出现一次。
- 把网格划分成 \(9\) 个 \(3\times3\) 的宫,数字 \(1\sim 9\) 在每一宫恰好出现一次。
现在给你一个未完成的数独网格,请你判断当前是否存在错误。**一个网格是存在错误的,当且仅当存在一行或一列或一宫,其中至少一个数字出现了 \(2\) 次及以上。**
如图展示了一个数独网格,它不存在错误。

输入格式
输入一个 \(13\times 13\) 的字符矩阵,表示数独网格,其中:
- 字符
-、|、+表示网格框架,表示将网格划分为 \(9\) 个 \(3\times 3\) 的宫。 - 字符
.表示一个未填数字的单元格。 - 从 \(1\sim9\) 的数字表示所在单元格已经填了这个数字。
具体请见样例。
输出格式
一行一个字符串,如果这个网格存在错误,输出 GRESKA,否则输出 OK。
输入输出样例 #1
输入 #1
+---+---+---+
|52.|...|.81|
|.39|58.|...|
|.8.|.9.|...|
+---+---+---+
|24.|...|1.3|
|1..|43.|86.|
|.63|..7|.24|
+---+---+---+
|...|1.9|35.|
|..8|.74|6..|
|31.|86.|7.9|
+---+---+---+
输出 #1
OK
输入输出样例 #2
输入 #2
+---+---+---+
|3..|6..|..4|
|4.9|8.1|..7|
|..7|.49|6..|
+---+---+---+
|946|157|8.2|
|.2.|3..|745|
|.7.|28.|...|
+---+---+---+
|...|4..|..5|
|8.5|.6.|.2.|
|734|..8|5..|
+---+---+---+
输出 #2
GRESKA
输入输出样例 #3
输入 #3
+---+---+---+
|5..|98.|67.|
|6..|...|.31|
|.2.|613|.4.|
+---+---+---+
|.96|8.2|1.7|
|.28|..5|.9.|
|7.3|19.|6..|
+---+---+---+
|962|.7.|.1.|
|1.5|...|76.|
|.7.|5..|9..|
+---+---+---+
输出 #3
GRESKA
说明/提示
【样例解释#1】
这个网格没有错误,所有输出 OK。
【样例解释#2】
第 \(9\) 列数字 \(5\) 出现了 \(2\) 次,且右下角的一个宫中数字 \(5\) 出现了 \(2\) 次。
【样例解释#3】
第 \(2\) 列数字 \(2\) 出现了 \(2\) 次,且第 \(7\) 列数字 \(6\) 出现了 \(2\) 次。
【数据范围】
对于 \(100\%\) 的数据,字符矩阵中只包含数字 \(1\sim9\)、字符 -、|、+、.,且字符 -、|、+ 出现的位置与样例一致。
本题采用捆绑测试。
| 子任务 | 特殊性质 | 分值 |
|---|---|---|
| \(1\) | 如果存在错误,一定可以只检查行的限制找到 | \(11\) |
| \(2\) | 如果存在错误,一定可以只检查列的限制找到 | \(12\) |
| \(3\) | 如果存在错误,一定可以只检查宫的限制找到 | \(13\) |
| \(4\) | 无特殊性质 | \(14\) |
信息
- ID
- 1123
- 难度
- 10
- 分类
- (无)
- 标签
- (无)
- 递交数
- 1
- 已通过
- 0
- 通过率
- 0%
- 被复制
- 3
- 上传者