Sudoku
Το Sudoku είναι ένα λογικό, συνδυαστικό (combinatorial) παζλ τοποθέτησης αριθμών.
Ο στόχος είναι να γεμίσετε ένα πλέγμα με ψηφία από το
έως το
με τέτοιο τρόπο ώστε να ικανοποιούνται οι ακόλουθες προτάσεις:
- Κάθε σειρά περιέχει ακριβώς μία εμφάνιση κάθε ψηφίου.
από το
έως το
.
- Κάθε στήλη περιέχει ακριβώς μία εμφάνιση κάθε ψηφίου
από το
έως το
.
- Κάθε ένα από τα εννέα υποπλέγματα διαστάσεων
περιέχει ακριβώς μία εμφάνιση κάθε ψηφίου από το
έως το
.
Για ένα δεδομένο πλέγμα sudoku που δεν έχει ακόμη ολοκληρωθεί, προσδιορίστε αν υπάρχει κάποιο λάθος σε αυτό.
Σημείωση: Δεν είναι απαραίτητο να ελέγξετε αν το πλέγμα sudoku είναι επιλύσιμο.
Είσοδος
Η είσοδος περιγράφει το πλέγμα sudoku.
Οι χαρακτήρες '', '
' και '
' πλαισιώνουν τα υποπλέγματα
.
Ο χαρακτήρας '' αντιπροσωπεύει ένα κενό κελί.
Όλοι οι υπόλοιποι χαρακτήρες στην είσοδο θα είναι ψηφία από το '' έως το '
'.
Δείτε τα παραδείγματα για αποσαφήνιση.
Έξοδος
Αν υπάρχει λάθος στον πίνακα sudoku, εξάγετε τη λέξη .
Διαφορετικά, εξάγετε τη λέξη
.
Βαθμολογία
Υποπρόβλημα | Βαθμοί | Περιορισμοί |
1 | 11 | Γίνεται να διαπιστωθεί αν υπάρχει λάθος ελέγχοντας μόνο τον πρώτο κανόνα. |
2 | 12 | Γίνεται να διαπιστωθεί αν υπάρχει λάθος ελέγχοντας μόνο τον δεύτερο κανόνα. |
3 | 13 | Γίνεται να διαπιστωθεί αν υπάρχει λάθος ελέγχοντας μόνο τον τρίτο κανόνα. |
4 | 14 | Κανένας επιπλέον περιορισμός. |
Παραδείγματα
input
+---+---+---+
|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|
+---+---+---+
output
OK
Επεξήγηση του πρώτου παραδείγματος:
Δεν υπάρχει κανένα λάθος, οπότε η έξοδος είναι .
input
+---+---+---+
|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..|
+---+---+---+
output
GRESKA
Επεξήγηση του δεύτερου παραδείγματος:
Υπάρχει ένα λάθος στην ένατη στήλη: το ψηφίο εμφανίζεται δύο φορές- και υπάρχει επίσης ένα λάθος στην κάτω δεξί υποπλέγμα
: το ψηφίο
εμφανίζεται δύο φορές.
input
+---+---+---+
|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..|
+---+---+---+
output
GRESKA
Επεξήγηση του τρίτου παραδείγματος:
Υπάρχουν δύο λάθη: το ψηφίο εμφανίζεται δύο φορές στη δεύτερη στήλη και το ψηφίο
εμφανίζεται δύο φορές στην έβδομη στήλη.
Comments