criptare

Time limit: 0.05s Memory limit: 4MB Input: criptare.in Output: criptare.out

Mircea şi Vasilică vor să-şi trimită mesaje pe care alţii să nu le înţeleagă. Au citit ei despre spioni şi modalităţi de a scrie mesaje şi, în final, au imaginat un mod de criptare a unui mesaj care foloseşte “cuvânt cheie”.

Alegându-şi un cuvânt cheie format numai din litere distincte, ei numără literele acestuia şi împart mesajul în grupe de lungime egală cu numărul de litere ale cuvântului cheie, şi le aşează una sub alta.

Desigur, se poate întâmpla ca ultima grupă să fie incompletă, aşa că o completează cu spaţii.

Apoi numerotează literele cuvântului cheie în ordinea apariţiei lor în alfabetul englez. În final, rescriu mesajul astfel: coloana de sub litera numerotată cu 11, urmată de coloana de sub litera numerotată cu 22, etc. înlocuind totodată şi spaţiile cu caracterul * (asterisc).

Exemplu:

  • cuvântul cheie: criptam
  • mesaj de criptat: Incercam sa lucram cu coduri si criptari.
  • cuvântul cheie criptam are 77 litere
  • numerotare: 26357142635714, deoarece avem în ordine
a b c d e f g h i j k l m n o p     q   r s t u v w x z ycriptam criptam criptam criptam criptam criptam criptam 1 2 3 4 5 6 7 \begin{CD} {\huge a} @. b @. {\huge c} @. d @. e @. f @. g @. h @. { \huge i} @. j @. k @. l @. {\huge m} @. n @. o @. {\huge p} @. \ \ \ \ q \ \ @. {\huge r} @. s @. {\huge t} @. u @. v @. w @. x @. z @. y \\ @V{\small cript}{\LARGE a}{\small m}VV @. @VV{\LARGE c}{\small riptam}V @. @. @. @. @. @V{\small cr}{\LARGE i}{\small ptam} VV @. @. @. @V{\small cripta}{\LARGE m}VV @. @. @V{ \small cri}{\LARGE p }{\small tam }VV @. @V{\small c}{\LARGE r}{\small iptam}VV @. @VV{\small crip}{\LARGE t}{\small am}V @. @. @.\\ 1 @. @. 2 @. @. @. @. @. @. 3 @. @. @. @. 4 @. @. @. 5 @. @. 6 @. @. 7 @. @. @. @. @. @. \\ @. @. @. @. @. @. @. @. @. @. @. @. @. @. @. @. @. @. @. @. @. @. @.\\ \end{CD}
  • împărţire în grupe: Incerca, m sa lu, cram cu, coduri, si cri, ptari. \rightarrow Incerca, m*sa*lu, cram*cu, coduri, *si*cri, ptari.*
  • codificare:
2635714Incercamsalucramcucodurisicriptari.        2Imcp    6nrcst  3csaoia  5eamdr  7ruci  1clcrr.  4auuii      1clcrr.2Imcp  3csaoia  4auuii  5eamdr  6nrcst  7ruci        clcrr.Imc**pcsaoiaauuii*eamd*rn*rcstr**uci \begin{array}{} \begin{array}{} 2 &6 &3 &5 &7 &1 &4 \\ \end{array} \\ \begin{array}{|c|c|c|c|c|c|c|} \hline I &n &c &e &r &c &a \\ \hline \end{array} \\ \\ \begin{array}{|c|c|c|c|c|c|c|} \hline m &* &s &a &* &l &u \\ \hline \end{array} \\ \\ \begin{array}{|c|c|c|c|c|c|c|} \hline c &r &a &m &* &c &u \\ \hline \end{array} \\ \\ \begin{array}{|c|c|c|c|c|c|c|} \hline * &c &o &d &u &r &i \\ \hline \end{array} \\ \\ \begin{array}{|c|c|c|c|c|c|c|} \hline * &s &i &* &c &r &i \\ \hline \end{array} \\ \\ \begin{array}{|c|c|c|c|c|c|c|} \hline p &t &a &r &i &. &* \\ \hline \end{array} \end{array} \ \ \ \ \rightarrow \ \ \ \ \begin{array}{} \begin{array}{} \begin{array}{} 2 \\ \begin{array}{|c|} \hline I \\ \hline m \\ \hline c \\ \hline * \\ \hline * \\ \hline p \\ \hline \end{array} \end{array} \ \ \ \ \begin{array}{} 6 \\ \begin{array}{|c|} \hline n \\ \hline * \\ \hline r \\ \hline c \\ \hline s \\ \hline t \\ \hline \end{array} \end{array} \ \ \begin{array}{} 3 \\ \begin{array}{|c|} \hline c \\ \hline s \\ \hline a \\ \hline o \\ \hline i \\ \hline a \\ \hline \end{array} \end{array} \ \ \begin{array}{} 5 \\ \begin{array}{|c|} \hline e \\ \hline a \\ \hline m \\ \hline d \\ \hline * \\ \hline r \\ \hline \end{array} \end{array} \ \ \begin{array}{} 7 \\ \begin{array}{|c|} \hline r \\ \hline * \\ \hline * \\ \hline u \\ \hline c \\ \hline i \\ \hline \end{array} \end{array} \ \ \begin{array}{} 1 \\ \begin{array}{|c|} \hline c \\ \hline l \\ \hline c \\ \hline r \\ \hline r \\ \hline . \\ \hline \end{array} \end{array} \ \ \begin{array}{} 4 \\ \begin{array}{|c|} \hline a \\ \hline u \\ \hline u \\ \hline i \\ \hline i \\ \hline * \\ \hline \end{array} \end{array} \end{array} \end{array} \ \ \ \ \rightarrow \\ \begin{array}{} \\ \begin{array}{} \ \ \begin{array}{} 1 \\ \begin{array}{|c|} \hline c \\ \hline l \\ \hline c \\ \hline r \\ \hline r \\ \hline . \\ \hline \end{array} \end{array} \begin{array}{} 2 \\ \begin{array}{|c|} \hline I \\ \hline m \\ \hline c \\ \hline * \\ \hline * \\ \hline p \\ \hline \end{array} \end{array} \ \ \begin{array}{} 3 \\ \begin{array}{|c|} \hline c \\ \hline s \\ \hline a \\ \hline o \\ \hline i \\ \hline a \\ \hline \end{array} \end{array} \ \ \begin{array}{} 4 \\ \begin{array}{|c|} \hline a \\ \hline u \\ \hline u \\ \hline i \\ \hline i \\ \hline * \\ \hline \end{array} \end{array} \ \ \begin{array}{} 5 \\ \begin{array}{|c|} \hline e \\ \hline a \\ \hline m \\ \hline d \\ \hline * \\ \hline r \\ \hline \end{array} \end{array} \ \ \begin{array}{} 6 \\ \begin{array}{|c|} \hline n \\ \hline * \\ \hline r \\ \hline c \\ \hline s \\ \hline t \\ \hline \end{array} \end{array} \ \ \begin{array}{} 7 \\ \begin{array}{|c|} \hline r \\ \hline * \\ \hline * \\ \hline u \\ \hline c \\ \hline i \\ \hline \end{array} \end{array} \\ \end{array} \\ \\ \end{array} \ \ \ \ \rightarrow \ \ \ \ \text{clcrr.Imc**pcsaoiaauuii*eamd*rn*rcstr**uci}

Cerință

Fiind date un cuvânt cheie şi un mesaj criptat, decodificaţi mesajul trimis de Mircea pentru Vasilică.

Date de intrare

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

Date de ieșire

Fişierul de intrare criptare.out conţine pe prima linie mesajul decriptat.

Restricții și precizări

  • lungimea mesajului este de minim 2020 si maxim 1 0001 \ 000 caractere
  • cuvântul cheie are minim 55 şi maxim 2020 de caractere
  • cuvântul cheie conţine numai litere mici ale alfabetului

Exemplu

criptare.in

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

criptare.out

Incercam sa lucram cu coduri si criptari.

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