|
Hexadoku
A sudoku mesterek egyre nehezebb és nehezebb feladványokat találnak ki önmaguk és barátaik szórakoztatására. A legújabb ötletük az, hogy úgy módosítják az eredeti feladványokat, hogy a hagyományos 9x9-es játék helyett 16x16-os táblát használnak. Egy további nehezítés, hogy egyszerű számok helyett tetszőleges, de előre meghatározott karaktereket tartalmazhat a megoldás.
Azonban egy ilyen feladvány helyességét kézzel értékelni kimondottan nehéz, így a mi feladatunk az, hogy egy olyan programot készítsünk, mely egy kitöltött feladványról megmondja, hogy helyesen történt-e a kitöltése.
Input
- A bemenet első sora az adott teszteset során felhasználható karaktereket adja meg szóközzel elválasztva.
- A következő 16 darab sor mindegyike 16 darab, szóközzel elválasztott "bejegyzést" tartalmaz.
- Megjegyzés: bejegyzés alatt a sudoku egy cellájának értékét értjük, mely egy legalább 1, legfeljebb 5 karakteres string.
Output
A kimenet a VALID szó ha az alábbiak mindegyike teljesül:
- a sudoku összes bejegyzésében lévő karakter a felhasználható karakterek halmazának eleme;
- a sudokuban pontosan 16-féle különböző bejegyzés szerepel (az egyes cellákat elválasztó szóközön kívül);
- a sudoku helyesen van kitöltve, azaz minden sorban, oszlopban és 4x4-es alnégyzetben a 16-féle bejegyzés pontosan egyszer szerepel.
Ellenkező esetben a kimenet az INVALID szó.
Megjegyzés: az alnégyzet definíciója megegyezik a hagyományos sudokuban megismerttel azzal a különbséggel, hogy az oldalhossza a klasszikus 3 helyett most 4.
Megkötések
- A teljes felhasználható karakterlista elemei a 0,1,...,9 számok, az angol ABC kis- és nagybetűi, illetve a {':', '.', ';', '_'} halmaz elemei lehetnek.
- Az egyes teszteseknél felhasználható karakterlista a fenti halmaz egy (nem feltétlenül valódi) részhalmaza.
- sudokui,j egy min. 1, maximum 5 hosszúságú string, melynek elemei a teljes felhasználható karakterlistából kerülnek ki minden 0 ≤ i,j ≤ 15 esetén.
Példa
Input:
0 1 2 3 4 5 6 7 8 9 A B C D E F a b x y : 8 F 6 5 12 A 7 D 4 9 C 3 2 B 0 EF29 12 4 2 3 B C EF29 9 0 6 8 D 5 F 7 A C 7 A 9 0 4 2 3 B EF29 F 5 6 D 8 12 B 0 D EF29 F 5 8 6 7 A 2 12 4 3 C 9 2 6 4 7 D 8 9 B C 0 EF29 F 3 A 12 5 3 9 5 12 6 0 A F 2 8 B 4 C 7 EF29 D F D 8 0 C 12 3 EF29 5 7 A 9 B 6 4 2 A B EF29 C 2 7 5 4 D 3 12 6 9 0 F 8 D 5 9 4 EF29 3 F 8 12 C 7 A 0 2 6 B 7 2 B A 9 6 D C EF29 4 0 8 F 12 5 3 0 C 3 F 4 B 12 A 6 5 D 2 EF29 8 9 7 6 EF29 12 8 5 2 0 7 9 F 3 B D C A 4 EF29 12 7 6 3 F 4 2 A D 9 C 8 5 B 0 9 8 0 2 A D 6 5 F B 4 7 12 EF29 3 C 5 A C D 8 9 B 0 3 12 6 EF29 7 4 2 F 4 3 F B 7 EF29 C 12 8 2 5 0 A 9 D 6
letöltés szöveges állományként
Output:
VALID
letöltés szöveges állományként
|
|