codif

Time limit: 0.02s Memory limit: 16MB Input: codif.in Output: codif.out

Pentru scrierea mesajelor soldaţii dintr-o unitate militară folosesc 99 litere mici: a, e, i, o, u, m, n, r, s şi caracterul spaţiu. Aceste litere sunt codificate cu ajutorul cifrelor 1,2,,91, 2, \dots, 9 (în ordinea de mai sus), iar pentru caracterul spaţiu se foloseşte cifra 00. Astfel codificarea textului ana are mere se poate realiza prin numărul natural 171018206282171018206282.

Pentru a mări gradul de securitate a mesajelor transmise soldaţii relizează o supracodificare, înlocuind fiecare cifră kk folosită la codicare cu puterea 2k2^k. Astfel textul anterior se supracodifică astfel: 21282122564164425642128212256416442564.

Cerinţă

Să se scrie un program care pentru o supracodificare dată, determină textul iniţial. Dacă există mai multe astfel de texte se vor determina toate.

Date de intrare

Fişierul de intrare codif.in conţine pe prima linie, nn numărul de cifre folosite la textul supracodificat, iar pe a doua linie conţine supracodificarea.

Date de ieșire

Fişierul de ieşire codif.out va conţine pe prima linie numărul mm de texte ce corespund supracodificării date, iar pe următoarele mm linii, textele, fiecare dintre acestea pe câte o linie, în ordine lungo-lexicografică.

Restricții și precizări

  • 0<n<830 < n < 83
  • Pentru două texte u=u1u2uau = u_1 u_2 \dots u_a şi v=v1v2vbv = v_1 v_2 \dots v_b, avem că uu este înaintea lui vv în ordine lungo-lexicografică, dacă a<ba < b sau dacă a=ba = b şi există un indice 1ia1 \leq i \leq a cu proprietatea că u1=v1,,ui1=vi1u_1 = v_1, \dots, u_{i-1} = v_{i-1}, ui<viu_i < v_i. Ordinea caracterelor este cea dată de codurile ASCII. De exemplu, în ordine lungo-lexicografică, textul aerss este înaintea textului aeumr, şi după textul sun.
  • Fiecare linie din fişierul de ieşire va avea sfârşit de linie.
  • Pentru toate testele numărul de texte care corespunde aceleiaşi supracodificări este mai mic sau egal cu 7070.

Exemplu

codif.in

19
2128212256416442564

codif.out

4
ana are mere
ana areoeere
a aia are mere
a aia areoeere

Log in or sign up to be able to send submissions!