Mistrzostwa Polski Szkół Średnich w Programowaniu Zespołowym 2024
Problem description
Porucznik Archibald zarządził podsłuch podejrzanego o szmugiel nielegalnych okazów sklepu terrarystycznego, położonego w okolicy jego posterunku. Od tygodnia jednak nie jest w stanie rozgryźć części przechwytywanej komunikacji. Porucznik spędził sporo czasu na konsultacjach ze specjalistami od szyfrów i próbach znalezienia jakichkolwiek metod, których mogliby używać terraryści. Płazy okazały się ślepą uliczką, ostatecznie jednak Archibald przypomniał sobie o istnieniu szyfru Gaderypoluki. Jest to bardzo prosta technika, kto jednak powiedział, że trudniący się przemytem terraryści muszą być specjalistami kryptografii?
Gaderypoluki to nieskomplikowany szyfr, często stosowany w
harcerstwie. Klucz szyfrowania (niepusty, o parzystej długości, złożony
z parami różnych liter) dzieli się na pary sąsiednich znaków. Dla
każdego analizowanego znaku z tekstu jawnego poszukiwany jest on w
kluczu. W przypadku znalezienia, jest on zamieniany na drugi znak z pary
w kluczu. Jeśli zaś znak tekstu nie występuje w kluczu, pozostawiany
jest bez zmian. Proces deszyfracji przebiega, oczywiście, identycznie.
Inspektor zakłada, że kluczem szyfrowania zawsze jest
GADERYPOLUKI
. Zatem litera G
jest w parze z
literą A
, litera E
z literą D
itd. Przykładowo, wiadomość JADOWITEWEZE
zostanie wówczas
zakodowana jako JGEPWKTDWDZD
. Ze względu na ilość danych,
Archibaldowi zależy na automatyzacji procesu deszyfrowania.
Napisz program, który: wczyta ciąg znaków będących zaszyfrowanym tekstem, wyznaczy tekst jawny z którego powstał i wypisze wynik na standardowe wyjście.
Wejście
W pierwszym i jedynym wierszu wejścia znajduje się niepusty ciąg złożony z wielkich liter alfabetu angielskiego, stanowiący przechwyconą przez porucznika wiadomość.
Wyjście
W pierwszym i jedynym wierszu wyjścia należy wypisać ciąg złożony z wielkich liter alfabetu angielskiego, będący dekodowaniem ciągu podanego na wejściu.
Ograniczenia
Długość ciągu z wejścia nie przekracza 1 000 000 znaków.
Przykład
Wejście | Wyjście | |
|
|
Wejście | Wyjście | |
|
|