Gửi bài giải

Điểm: 100,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 512M

Tác giả:
Dạng bài

DoMixi đang livestream giải Sudoku thì một viewer nhắn lên: "Anh ơi, bảng của anh sai rồi kìa!" DoMixi hoảng hồn nhìn lại bảng, nhưng không biết chỗ nào sai — anh ấy đang lag não sau 8 tiếng stream. Hãy giúp DoMixi kiểm tra xem bảng Sudoku của anh có lỗi không nhé!

Sudoku là một lưới ~9 \times 9~ gồm các chữ số từ ~1~ đến ~9~. Bảng không có lỗi khi thỏa mãn tất cả các điều kiện sau:

  • Mỗi hàng chứa đúng một lần mỗi chữ số từ ~1~ đến ~9~.
  • Mỗi cột chứa đúng một lần mỗi chữ số từ ~1~ đến ~9~.
  • Mỗi trong ~9~ ô vuông ~3 \times 3~ chứa đúng một lần mỗi chữ số từ ~1~ đến ~9~.

Cho một bảng Sudoku chưa hoàn chỉnh, hãy kiểm tra xem bảng đó có lỗi không.

Lưu ý: Không cần kiểm tra xem bảng Sudoku có thể giải được hay không — chỉ cần kiểm tra các chữ số đã điền có vi phạm quy tắc không.

Dữ liệu vào

Dữ liệu vào mô tả bảng Sudoku. Các ký tự |, - và + tạo nên khung phân chia các ô ~3 \times 3~. Ký tự . đại diện cho ô trống. Các ký tự còn lại là chữ số từ 1 đến 9.

Kết quả

In ra OK nếu bảng không có lỗi. Ngược lại, in ra GRESKA.

Ví dụ

Đầu vào 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|
+---+---+---+

Đầu ra 1:

OK

Đầu vào 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..|
+---+---+---+

Đầu ra 2:

GRESKA

Giải thích: Ở ví dụ 2, chữ số ~5~ xuất hiện hai lần ở cột ~9~, và cũng xuất hiện hai lần ở ô ~3 \times 3~ góc dưới bên phải.

Giới hạn

Subtask Điểm Ràng buộc
1 20 Chỉ cần kiểm tra quy tắc theo hàng
2 20 Chỉ cần kiểm tra quy tắc theo cột
3 25 Chỉ cần kiểm tra quy tắc theo ô ~3 \times 3~
4 35 Không có ràng buộc thêm

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.