-
Notifications
You must be signed in to change notification settings - Fork 5
/
popis.txt
37 lines (29 loc) · 1.96 KB
/
popis.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
110204 - Crypt kicker
---------------------
Častá, ale nie moc bezpečná metóda šifrovania textu je permutácia písmen abecedy.
Inými slovami, každé písmeno v abecede je nahradené v texte iným písmenom.
Aby bolo zaistené, že šifrovanie je obojstranné, žiadne dva písmená niesú nahradené rovnakým písmenom.
Vašou úlohou je dešifrovať niekoľko zakódovaných riadkov textu, za predpokladu, že každý riadok
používa inú sadu náhrad, a že všetky slová v dešifrovanom texte sú zo slovníka známych slov.
VSTUP
-----
Vstup sa skladá z riadku, ktorý obsahuje celé číslo n, nasledovaný n slovami zložených z malých písmen,
jedno slovo na riadok, v abecednom poradí. Týchto n slov skladá slovník slov, ktoré sa môžu objaviť v dešifrovanom texte.
Po slovníku nasleduje niekoľko riadkov vstupu. Každý riadok je zašifrovaný, ako je popísané vyššie.
Slovník obsahuje do 1000 slov. Žiadne slovo nepresahuje dĺžku 16 znakov.
Šifrované riadky obsahujú iba malé písmená a medzery, a neprekračujú dĺžku 80 znakov.
VÝSTUP
------
Dešifruj každý riadok a vypíš ich na štandardný výstup. Ak existuje viac riešení, vyber jedno z nich.
Ak riešenie neexistuje, vymeň každé písmeno abecedy za hviezdičku.
POSTUP
------
1. Na prvom riadku nacitame pocet slov slovnika.
2. Na dalsich riadkoch su jednotlive slova slovnika, prejdeme ich a vlozime do pola.
3. Kazdy znak z kazdeho slova pridame do sifrovacej mapy ako kluc a hodnotu nastavime na * (hviezdicku).
4. Vytvorime si mapu ktorej klucom je pocet podobnych pismen a hodnota je slovnik slov.
5. Pokial este mapa neexistuje pre dane slovo, vytvorme ju a vlozme slovo.
6. Nasledne mapu vlozime do mapy podobnych pismen na index ktory je rovny poctu podobynch pismen slova.
7. Pokial mapa existuje tak len aktualizujeme jej slova.
8. Po slovach slovnika nasleduju jednotlive sifrovane riadky.
9. Desifrujeme ich pomocou naplnenych sifrovacich a desifrovacich map a slovnika.