criptare

Gigel si Ionel vor sa-si trimita mesaje pe care nimeni sa nu le înteleaga. Au citit ei despre spioni si modalitati de a scrie mesaje si, în final, au imaginat un mod de criptare a unui mesaj care foloseste “cuvinte cheie” (le-a placut lor denumirea asta :-) ).

Alegându-si un cuvânt cheie format numai din litere distincte, ei numara literele acestuia si împart mesajul în grupe de lungime egala cu numarul de litere al cuvântului cheie, si le aseaza una sub alta. Desigur, se poate întâmpla ca ultima grupa sa fie incompleta, asa ca o completeaza cu spatii. Apoi numeroteaza literele cuvântului cheie în ordinea din alfabet. În final, rescriu mesajul astfel: coloana de sub litera numerotata cu 1, urmata de coloana de sub litera numerotata cu 2, etc. înlocuind totodata si spatiile cu caracterul ‘*’ (asterisc).

Exemplu:

      cuvântul cheie               criptam
      mesaj de criptat             Incercam sa lucram cu coduri si criptari.
cuvântul cheie        criptam      are 7 litere
numerotare            2635714
împartire în grupe   Incerca|m sa lu|cram cu| coduri| si cri|ptari.
codificare           2635714
                     Incerca
                     m*sa*lu
                     cram*cu
                     *coduri
                     *si*cri
                     ptari.*
mesaj criptat        clcrr.Imc**pcsaoiaauuii*eamd*rn*rcstr**uci
                     col1  col2  col3  col4  col5  col6  col7

Cerinta

Dat un cuvânt cheie si un mesaj criptat, decodificati mesajul trimis de Gigel pentru Ionel.

Date de intrare

Fişierul de intrare criptare.in contine pe prima linie mesajul criptat iar pe linia a doua cuvântul cheie.

Date de iesire

Fisierul de intrare criptare.out contine pe prima linie mesajul decriptat.

Restrictii

·      lungimea mesajului este de minim 5 si maxim 1000 caractere
·       cuvântul cheie are minim 5 si maxim 20 caractere
·       cuvântul cheie conţine numai litere mici ale alfabetului

Exemplu

criptare.in

criptare.out

clcrr.Imc**pcsaoiaauuii*eamd*rn*rcstr**uci
criptam

Incercam sa lucram cu coduri si criptari.

Timp maxim de executie/test: 1 secunda