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