Gigel şi Vasilică imaginează un mod de a transmite mesaje pe care nimeni să nu le poată descifra. Mesajul este ascuns într-un text care are linii şi pe fiecare linie sunt exact caractere – litere mari ale alfabetului englez, cifre, semne de punctuaţie şi caracterul spaţiu.
Decodificarea se face cu ajutorul unui şablon, de aceleaşi dimensiuni ca şi textul, care are câteva găuri. Suprapunând şablonul peste text rămân vizibile câteva caractere. Acestea se citesc în ordinea liniilor, de sus în jos, iar pe aceeaşi linie de la stânga la dreapta. Apoi hârtia cu textul se roteşte spre stânga, în sens trigonometric, cu , şablonul rămânând fix. Alte caractere devin vizibile şi acestea se citesc în acelaşi mod. Operaţia se repetă de încă două ori (rotire cu , respectiv cu ), până când textul ajunge, printr-o nouă rotaţie cu , din nou în poziţia iniţială.
Din păcate, şablonul pentru codificare/decodificare s-a pierdut. În schimb a rămas la Gigel mesajul iniţial iar la Vasilică a ajuns textul care conţine mesajul.
Cerință
Să se reconstituie şablonul care a fost folosit la codificare.
Date de intrare
Fişierul de intrare sablon.in
conţine pe prima linie, mesajul iniţial. Pe linia a doua a fişierului de intrare se găseşte valoarea .
Următoarele linii conţin textul care ascunde mesajul.
Date de ieșire
Fişierul de ieşire sablon.out
conţine linii a câte caractere. Caracterele sunt O
(pentru reprezentarea unei găuri) şi X
.
Restricții și precizări
- prin rotirea textului nici una din găuri nu se va suprapune peste nici una din poziţiile ocupate de o gaură în poziţiile precedente ale textului
- mesajul are maxim caractere şi se încheie cu un caracter diferit de spaţiu
- în cazul în care există mai multe soluţii, afişaţi una dintre ele
Exemplu
sablon.in
CODIFICARE CU SABLON
10
ABCDCEFAGH
IJOKLEMNOP
DQRSTUVWCX
YZAIBCRDEF
GFHIJKLMNI
AJKLMNOPSQ
RSTOUV WXY
ZBABCDEFGU
HIJKNLMCNO
PQLRS TUVW
sablon.out
XXXXOXXXXX
XXOXXXXXXX
OXXXXXXXXX
XXXOXXXXXX
XOXXXXXXXX
XXXXXXXXXX
XXXXXXXXXX
XXXXXXXXXX
XXXXXXXXXX
XXXXXXXXXX