Zadanie: ENI Enigma

Transkrypt

Zadanie: ENI Enigma
Zadanie: ENI
Enigma
Autor zadania: Cezary Michalczyk. Plik źródłowy: ENI.cpp ; Limit pamięci: 4MB
Papierowy dziennik powoli staje się przeszłością dla otwockich szkół - także nauczyciele Gałczyna
zaczynają już korzystać z LIBRUSa! Każdy z nich ma obowiązek założyć swoje konto, ponadto każdy z
wychowawców powinien założyć konta dla uczniów swojej klasy. Mają jednak pewną zagwozdkę - chcą, aby
hasła dostępu były niepowtarzalne, a jednocześnie kodowane według określonej zasady tak, aby można było
je odzyskać w przypadku zapominalstwa właściciela konta.
Zaproponowano kod Enigmy - niemieckiej maszyny szyfrującej. Każdy tekst jawny przyszłego hasła
będzie składał się z:
IMIEXNAZWISKOXNUMERPESELSLOWNIE
Jak widać, pomiędzy kolejnymi jego elementami występuje litera "X" i nie ma polskich znaków.
Następnie tekst ten jest poddawany szyfrowaniu. Sprawa nie jest jednak taka prosta! Nauczyciele poprosili
Cię o pomoc. Napisz program, który zaszyfruje ich hasła według ściśle określonych zasad.
Dokładny opis działania Enigmy, wystarczający do napisania programu, znajdziesz w dokumencie
dołączonym do koperty z zadaniami oraz w zakładce "Pliki" serwisu SZKOpuł.
Wejście
Pierwszy wiersz standardowego wejścia zawiera tekst do zaszyfrowania (lub odszyfrowania),
zapisany bez spacji, jedynie za pomocą wielkich liter alfabetu łacińskiego.
Drugi wiersz to dwie cyfry: m i n (
,
), kolejno oznaczające liczbę
wirników i numer reflektora maszyny.
Trzeci wiersz przedstawia kolejność wirników od lewej do prawej strony, natomiast czwarty
odpowiadające im pozycje początkowe (klucz). Każda z cyfr i liter jest oddzielona spacją.
W następnym wierszu określamy ile par liter będzie połączonych przy użyciu łącznicy wtyczkowej
(
), zaś następne k wierszy będzie opisywało każdą z tych par za pomocą dwóch liter
oddzielonych spacją.
Wyjście
Pierwszy i jedyny wiersz standardowego wyjścia zawiera zaszyfrowany (lub odszyfrowany) tekst o
takiej samej długości jak pierwsza linia wejścia.
Przykład
Dla danych wejściowych:
JANXNOWAKXOSIEMXPIECXZEROXCZTERYXDWAXTRZYXJEDENXDWAXOSIEMXCZTERYXSIEDEM
73
4537162
QAZRTVB
4
QA
SB
RC
PL
Prawidłową odpowiedzią jest:
UCJLIVJVCLKCLDQJKADZIWKJUIFNWCKRCWOVWUPTQVXIEAKDVLLZVVHXDWJCFHNTNTYHNPL