Una dintre cele mai vechi metode de criptare, cunoscută sub numele de codificare Cezar, presupune următoarele: cunoscându-se cele 26 de litere mari ale alfabetului şi un număr natural k, numit cheie, se înlocuieşte fiecare literă din textul care trebuie codificat cu cea de a k-a literă care o urmează în alfabet, spaţiile dintre cuvinte rămânând nemodificate. Astfel, dacă trebuie codificat textul CODIFICARE CEZAR cu cheia k=5, se va obţine textul codificat HTINKNHFWJ HJEFW. Se observă că, în cazul în care şirul literelor din alfabet se termină, se reia numărarea de la început (circular).
Acest gen de codificare este însă extrem de uşor de ″spart″. Să ne imaginăm atunci un alt mod de codificare.
Presupunem, ca şi în cazul de mai sus, că textul de codificat conţine doar litere mari şi spaţii. Pentru codificare se procedează astfel:
1. se elimină spaţiile
2. se împarte textul obţinut în segmente de câte 10 litere şi se aşează segmentele unul sub altul; ultimul segment poate fi mai scurt
3. se alege o secvenţă de 10 numere naturale (10 chei) k1, k2, ..., k10 şi se codifică fiecare coloană utilizând codificarea Cezar cu cheia corespunzătoare coloanei (k1- coloana 1, k2-coloana 2, ...)
4. se reface textul punând segmentele la locul lor apoi spaţiile la locul lor
De exemplu, dacă avem de codificat textul OLIMPIADA NATIONALA DE INFORMATICA DE LA GALATI se va obţine, pe rând, la cei patru paşi
1. OLIMPIADANATIONALADEINFORMATICADELAGALATI
2. OLIMPIADAN
ATIONALADE
INFORMATIC
ADELAGALAT
I
3. Fie cheile alese (k1, k2, ..., k10) = (1,2,1,3,1,4,1,5,0,6)
PNJPQMBIAT
BVJRMEMFDK
JPGRSQBYII
BFFDBKBQAZ
J
4. PNJPQMBIATBVJRMEMFDKJPGRSQBYIIBFFOBKBQAZJ
PNJPQMBIA TBVJRMEMF DK JPGRSQBYIIB FF OB KBQAZJ
Cerinţă
Scrieţi un program care să realizeze decodificarea unui text codificat în modul arătat mai sus.
Date de intrare
Fişierul de intrare cezar.in conţine pe prima linie textul codificat. Linia a doua a fişierului va conţine 10 numere naturale separate prin câte un spaţiu reprezentând cheile de codificare.
Date de ieşire
Fişierul de ieşire cezar.out va conţine pe prima linie textul decodificat.
Restricţii
lungimea textului codificat nu depăşeşte 255 caractere
caracterele folosite sunt litere mari ale alfabetului şi caracterul spaţiu
cheile au valori cuprinse între 0 şi 25
literele alfabetului sunt, în ordine: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z