Așa cum știm, lui
Gigel îi place să se joace cu cifrele și cu literele. De data asta a "inventat"
o nouă metodă de criptare a mesajelor pe care vrea să le transmită prietenului
său, Ionel. Metoda lui se bazează pe înlocuirea literelor alfabetului cu alte
litere conform unei chei de criptare.
Astfel el stabilește un cuvânt cheie, format din maxim 26 litere mari
distincte.
Construiește apoi un tabel cu 26
poziții și pune cuvântul cheie într-o poziție oarecare k
din tabel. Poziția aceasta o numește poziție cheie.
În continuarea cuvântului cheie pune, în ordine, literele alfabetului care nu
apar în cuvântul cheie, având grijă ca atunci când a ajuns la poziția 26
să continue cu poziția 1 din
tabel. Gigel obține astfel cheia de criptare formată din 26
caractere. De exemplu, pentru cuvântul cheie IONESCU
și poziția cheie k=9 în care
acesta se pune în cheia de criptare se obține:
Q | R | T | V | W | X | Y | Z | I | O | N | E | S | C | U | A | B | D | F | G | H | J | K | L | M | P |
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 |
A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
Acum codificarea este simplă. Fiecare literă din cheia de criptare corespunde unei litere din alfabet, deci Gigel ia fiecare literă a mesajului pe care vrea să-l transmită, o caută în alfabet și o înlocuiește cu litera corespunzătoare din cheia de criptare.
Cerință
Fiind dat cuvântul cheie, poziția cheie în care acesta se pune în cheia de criptare
și un text criptat având mai multe linii, să se realizeze decriptarea textului
respectiv.
Date de intrare
Fișierul de intrare mesaj.in
conține pe prima linie cuvântul cheie. Pe linia a doua se găsește poziția cheie.
Următoarele linii conțin textul criptat, fiecare linie având maxim 255
caractere.
Date de ieșire
Fișierul de ieșire mesaj.out
conține textul decriptat, fiecare linie din text corespunzând liniei respective
din mesajul criptat.
Restricții și
precizări
- liniile textului au maxim 255
caractere
- textele sunt formate doar din litere mari ale alfabetului englez
- cuvântul cheie are maxim 26
litere
- poziția cheie este un număr natural k,
1 <= k <= 26
- cheia de criptare are exact 26
caractere, litere mari ale alfabetului englez
Exemplu
mesaj.in | mesaj.out |
CAMPION |
INACESTANPREGATIREAPECAMPIONSEVAFACEPRINEVALUAREONLINE |
Timp maxim de execuție/test: 0.1 secunde
prof.
Marinel Șerban
Liceul de Informatică "Gr. C. Moisil" Iași
marinel_serban@yahoo.com