Zgłaszanie | Wszystkie zgłoszenia | Najlepsze | Lista |
MWP5_2B - Sejf |
Jaś uczył się całymi dniami. Bez chwili wytchnienia czytał o algorytmach i rozwiązywał zadnia, na ogół od rana do nocy. Rodzice bardzo martwili się o niego (Jaś miał słaby wzrok, krzywy kręgosłup i groziło mu 2 z WF-u), toteż któregoś tragicznego dnia ojciec naszego bohatera zebrał wszystkie jego książki, laptopa i schował całość do sejfu (potem kazał iść pograć w piłkę). Rozpaczy Jasia nie było końca lecz wiedział dokładnie, że jest światełko w tunelu, że wystarczy tylko otworzyć sejf...
Sejf ten zabezpieczony jest bardzo długim hasłem, którego nasz bohater nie zna - lecz czego się nie zrobi dla przyjemności programowania! Sejf taty Jasia ma, na jego szczęście, jeden poważny mankament - wydaje charakterystyczne kliknięcia przy kręceniu gałką w lewo, znacznie różniące się od tych wydobywających się podczas kręcenia w prawo i nasz bohater upatruje to jako szansę dla siebie. Już jako małe dziecko podsłuchał jak ojciec otwiera sejf: 2 pola w lewo, 6 pól w prawo, kolejne 3 pola w prawo itd.
Na ruchomej tarczy służącej do wprowadzania kodu znajduje się 26 liter alfabetu angielskiego umieszczonych zgodnie z kolejnością (pole nr 1 - A, 2 - B, ..., 26 - Z). Nasz bohater nie będzie jednak miał zbyt dużo czasu na kombinowanie przy sejfie, toteż z powodu braku komputera poprosił Ciebie o napisanie programu, który na podstawie opisu ruchów wykonanych tarczą zweryfikuje czy dany wyraz w ogóle ma szansę być poprawnym kodem. Jaś nie chce tracić czasu na wprowadzanie zbędnych wyrazów, toteż da Ci listę tych które jego zdaniem mogą pasować, a Twój program określi, którego z nich nie warto nawet wprowadzać. Należy założyć, że pokrętło może być początkowo ustawione na dowolnej pozycji.
Wejście
W pierwszej linii wejścia znajduje się liczba n (2 ≤ n ≤ 1000) określająca liczbę ruchów tarczą jakie wykonał tata Jasia. W drugiej linii znajduje się opis tych ruchów (3L - oznacza przesunięcie o 3 pola w lewo, 1P - o jedno pole w prawo itd.). Trzecią linię wejścia stanowi liczba m (1 ≤ m ≤ 8000) oznaczająca liczbę wyrazów o, które Jaś zechce Cię zapytać. Kolejne m linii stanowią wyrazy składające się wyłącznie z wielkich liter alfabetu angielskiego. Długość wyrazu nie przekracza 1001 znaków.
Wyjście
Na wyjściu, w oddzielnej linii dla każdego zestawu danych, należy wypisać słowo "TAK" jeżeli dany wyraz ma szansę aby być poprawnym szyfrem lub słowo "NIE" jeśli jest inaczej.
Przykład
Wejście:
3 3L 4P 1P 5 KHLM BYCD MILM RVUZ TQR
Wyjście:
TAK TAK NIE NIE NIE
Dodane przez: | Maciej Boniecki |
Data dodania: | 2013-03-15 |
Limit czasu wykonania programu: | 0.300s |
Limit długości kodu źródłowego | 50000B |
Limit pamięci: | 1536MB |
Cluster: | Cube (Intel G860) |
Języki programowania: | All except: ASM64 SCM qobi |
Pochodzenie: | V Mistrzostwa WWSI w Programowaniu |