Wprowadzenie
Enigma była jedną z pierwszych elektromechanicznych szyfrów wirnikowych używanych podczas II wojny światowej. Oznacza to, że po zakodowaniu pojedynczej litery zmieni klucz na następną literę. Niemcy uznali to za niezniszczalne ze względu na ogromną przestrzeń na klucze. Nawet brutalne zmuszanie było prawie niemożliwe. Wystąpił jednak błąd projektowy w Enigmie. Zaszyfrowanie listu nigdy nie przyniosłoby rezultatu. Oznacza to, że list A
może szyfrować każdy list oprócz listu A
.
Weźmy przykład zakodowanej wiadomości:
BHGEFXWFTIUPITHHLPETTTCLOEWOELMRXXPAKAXMAMTXXUDLTWTNHKELEPPLHPRQ
Typowe niemieckie słowo to WETTERBERICHT
lub prognoza pogody w języku angielskim. Za pomocą powyższej zasady możemy określić, w których lokalizacjach to słowo może być:
BHGEFXWFTIUPITHHLPETTTCLOEWOELMRXXPAKAXMAMTXXUDLTWTNHKELEPPLHPRQ
WETTERBERICHT
^
Nie jest to możliwe, ponieważ I
nie można ich zaszyfrować, więc przechodzimy do 1 miejsca:
BHGEFXWFTIUPITHHLPETTTCLOEWOELMRXXPAKAXMAMTXXUDLTWTNHKELEPPLHPRQ
WETTERBERICHT
^
Nie jest to również możliwe, dlatego ponownie przenosimy inne miejsce:
BHGEFXWFTIUPITHHLPETTTCLOEWOELMRXXPAKAXMAMTXXUDLTWTNHKELEPPLHPRQ
WETTERBERICHT
^
To znowu nie jest możliwe. W rzeczywistości pierwsze możliwe wystąpienie WETTERBERICHT
to:
BHGEFXWFTIUPITHHLPETTTCLOEWOELMRXXPAKAXMAMTXXUDLTWTNHKELEPPLHPRQ
WETTERBERICHT
0123456789012345678901234567890123456789012345678901234567890123
^
13
Tak więc zwracamy indeksowaną 0 pozycję pierwszego możliwego wystąpienia, czyli 13 .
Zadanie
- Biorąc pod uwagę zakodowaną wiadomość i słowo, znajdź indeks pierwszego możliwego wystąpienia .
- Załóżmy, że będą używane tylko podstawowe wielkie litery (
ABCDEFGHIJKLMNOPQRSTUVWXYZ
). - Jeśli nie wystąpienie zostanie znaleziony, można wyprowadzać żadnego negatywnego całkowitą, znak lub nic (np
-1
,X
). - Dane wejściowe mogą być akceptowane jako argument na oddzielnych liniach, listach lub cokolwiek innego.
- To jest golf golfowy , więc wygrywanie z najmniejszą ilością bajtów wygrywa!
Przypadki testowe
Input: BHGEFXWFTIUPITHHLPETTTCLOEWOELM, WETTERBERICHT
Output: 13
Input: ABCDEFGHIJKL, HELLO
Output: 0
Input: EEEEEEEEEEEE, HELLO
Output: -1
Input: XEEFSLBSELDJMADNADKDPSSPRNEBWIENPF, DEUTSCHLAND
Output: 11
Input: HKKH, JJJJJ
Output: -1
E
że nigdy nie spowoduje to E
. Na tym polega całe to wyzwanie.