Prihlásenie Registrácia  

D - Dekodovanie

Časový limit: 2s, Pamäťový limit: 64MiB

Programovacie jazyky: Pascal, C, C++, Java, C++0x, Python 3

Počet bodov: 1

[ Pošli riešenie ] [ Tvoje riešenia ] [ Správne riešenia ] [ Vzorové riešenie ]

Studenti informatiky na UPJS sa urcite nevyhnu predmetu Kryptologia. Naucia sa na nom vsetky bezne pouzivane postupy v tomto vednom odbore. Aby to nezostalo len pri teoretickych poznatkoch, za domacu ulohu casto dostavaju rozlustit nejaky zakryptovany text. No niektori studenti su velmi lenivi a nechce sa im rozmyslat, preto radi nechavaju domace ulohy na inych a potom si ich len opisu. Jednym z nich je aj Lubo. Jedneho dna ale dostali dlhu domacu ulohu, ktoru by nestihol pred cvicenim jednoducho opisat. Preto uz den vopred zacal zhanat riesenie. No jedineho spoluziaka, ktoreho vedel zastihnut bol Ondrej. Ten mu povedal, ze sice riesenie este nema, no ze vraj od niekoho zistil kluc, podla ktorej je potrebne ulohu riesit. Lubo je bezradny. Na prednasky nechodi, preto ani nahodou netusi, ako ma pomocou kluca ulohu dokoncit. Pomozte tomuto lajdakovi.

Uloha

Vasou ulohou je rozkryptovat text zasifrovany substitucnou sifrou. Substitucna sifra funguje nasledovne. Na zaciatku sa zvoli tabulka kodovania znakov. Napriklad sa urci, ze znak A sa zakoduje ako R, znak B ako X atd. Teda povodny text ABBA by vyzeral RXXR. Vy dostanete kodovaciu tabulku a zakodovany text a mate ziskat text povodny.

Vstup

Prvy riadok vstupu obsahuje presne 26 velkych pismen. Je to tabulka, podla ktorej bol text zasifrovany. Pismeno A bolo zasifrovane na prve pismeno v tabulke, pismeno B na druhe pismeno tabulky atd. Predpokladajme, ze ide o anglicku abecedu. Za tabulkou nasleduju riadky zasifrovaneho textu. Za nimi nasleduje riadok obsahujuci jedinu bodku. Zasifrovany text obsahuje len velke znaky anglickej abecedy a medzery. Neobsahuje ziadne ine znamienka ani znaky. Riadok textu obsahuje maximalne 50 znakov.

Vystup

Za kazdy jeden riadok zakodovane textu na vstupe vypiste jeden riadok rozkodovane textu. Posledny riadok obsahujuci bodku uz nevypisujte. Snazte sa dodrzat pocet medzier.

Priklad

Vstup:

NOFKJDGCVITRZQABHWYPXESMLU
SCJQ V DVQK ZL FAKJ VQ PAQY AD PWAXORJ 
DWVJQKY NQK FARRJNGXJY FAZJ PA ZJ 
YBJNTVQG SAWKY AD SVYKAZ  SWVPJ VQ F 
NY PCJ KJNKRVQJ DNYP NBBWANFCJY 
NQK OXGY NWJ NRR PCNP V FNQ YJJ 
YAZJSCJWJ  YAZJAQJ SCVYBJWY  SWVPJ VQ F 
.

Vystup:

WHEN I FIND MY CODE IN TONS OF TROUBLE 
FRIENDS AND COLLEAGUES COME TO ME 
SPEAKING WORDS OF WISDOM  WRITE IN C 
AS THE DEADLINE FAST APPROACHES 
AND BUGS ARE ALL THAT I CAN SEE 
SOMEWHERE  SOMEONE WHISPERS  WRITE IN C

Problem by Marian Dvorsky and Samuel BWPOW Kupka