Numim tablou Sudoku o matrice cu elemente ce conține doar cifrele , și astfel încât în fiecare pătrat format din elemente alăturate să existe toate cele cifre și oricare două elemente alăturate pe linie sau pe coloană să fie distincte. Fiecărui tablou Sudoku se asociază un număr obținut prin scrierea cifrelor în ordine, începând cu prima linie.
De exemplu, tabloul Sudoku din imaginea alăturată are asociat numărul: 2132132132213211321321321.
Se definește șirul ca fiind un șir ordonat, format din toate tablourile Sudoku cu elemente, {}. Pentru orice pereche din cu , numărul asociat tabloului Sudoku si este strict mai mic decât numărul asociat tabloului Sudoku .
Pentru , șirul conține, în ordine, tablourile Sudoku:
Cerință
Date fiind două numere naturale și să se determine:
- numărul tablourilor Sudoku din șirul ;
- tabloul Sudoku aflat pe poziția în șirul .
Date de intrare
Fișierul sudoku.in
conține pe prima sa linie două numere naturale și separate prin câte un spațiu.
Date de ieșire
Fișierul de ieșire sudoku.out
va conține:
pe prima linie un număr natural ce reprezintă numărul tablourilor Sudoku din șirul
pe următoarele linii se găsesc câte cifre, separate prin câte un spațiu, ce reprezintă, în ordine, liniile tabloului Sudoku aflat pe poziția în șirul .
Restricții și precizări
- ;
- ;
- Pentru rezolvarea corectă a cerinței se acordă din punctaj, iar pentru rezolvarea corectă cerinței se acordă din punctaj.
- Acordarea punctajului pentru a doua cerință se face numai dacă în fișierul de ieșire există un răspuns pentru prima cerință, indiferent de corectitudinea acestuia.
Exemplul
sudoku.in
2 6
sudoku.out
12
2 1
3 2
Explicație
Șirul conține tablouri Sudoku, pe poziția în șir aflându-se tabloul: