Szyfr Cezara
Limit pamięci: 32 MB
W tym zadaniu będziesz miał zaimplementować znany algorytm szyfrowania i odszyfrowywania
danych, który był już używany w czasach Juliusza Cezara. Szyfrowanie tekstu polega na szyfrowaniu
kolejnych jego literek (załóżmy, że pozostałe znaki pozostawiamy bez zmian).
Każda literka zostaje w nim zamieniona w
-tą następną w alfabecie (
jest stałą szyfrowania), przy czym jeżeli taka nie istnieje (wychodzimy za z), to
odliczanie jest kontynuowane z powrotem od a.
Dla przykładu, jeżeli
, to a przechodzi na f, b na g, c na h, ...,
u na z, v na a, w na b, x na c, y na d, wreszcie z na e (podobnie dla dużych liter).
Zadanie
Napisz program, który:
- wczyta ze standardowego wejścia tekst do zaszyfrowania lub odszyfrowania
i stałą
,
- zaszyfruje lub odszyfruje tekst,
- wypisze wynik na standardowe wyjście.
Wejście
Pierwszy wiersz wejścia zawiera jedno słowo "szyfruj" lub "odszyfruj".
Drugi wiersz wejścia zawiera stałą
(
). Trzeci i ostatni wiersz wejścia
zawiera tekst, złożony wyłącznie z liter (małych bądź dużych) i/lub znaków interpunkcyjnych
(bez przejść do nowej linii). Tekst będzie zawierał co najmniej jeden znak
i co najwyżej
znaków.
Wyjście
Pierwszy i jedyny wiersz wyjścia powinien zawierać tekst po zaszyfrowaniu bądź
odszyfrowaniu.
Przykład
Dla danych wejściowych:
szyfruj
5
Szyfr Cezara - jest skuteczny!
poprawnym wynikiem jest:
Xedkw Hjefwf - ojxy xpzyjhesd!
a dla danych wejściowych:
odszyfruj
5
Xedkw Hjefwf - ojxy xpzyjhesd!
poprawnym wynikiem jest:
Szyfr Cezara - jest skuteczny!