Myszkowski
Cifrul Myszkowski functioneaza asa:
- notam cu
nlungimea mesajului, si cumlungimea cheii;
- mesajul se pozitioneaza intr-o matrice cu
mcoloane
- Pentru mesajul
THEREISONEIMPOSTORAMONGUSsi cheiaIMPOSTORatunci matricea ar arata astfel:
1 2 3 4 5 6 7 8 I M P O S T O R --------------- 1 T H E R E I S O 2 N E I M P O S T 3 O R A M O N G U 4 S - coloana
jva avea asociata litera din cheie de pe pozitiaj, apoi sortam coloanele in functie de litera lor, iar la litere egale, dupa numarul de ordine al coloanei:
I M O O P R S T
T H R S E O E I
N E M S I T P O
O R M G A U O N
S
- Pentru a cripta mesajul procedam astfel: parcurgem coloanele si daca avem
kcoloane cu aceiasi litera atunci afisam prima litera din prima coloana, prima litera din a doua coloana … prima litera din ak-a coloana, a doua litera din prima coloana, a doua litera din a doua coloana… a doua litera din ak-a coloana … ;
- mesajul criptat va arata astfel:
TNOS HERR SMSM GEIA OTUE POIO N(dacal= numarul de linii din matrice, atunci impartim mesajul criptat in cuvinte cullitere, mai putin ultimul cuvant).
Cerința
Se da numarul c:
- pentru
c=1, se citeste un mesaj si o cheie si trebuie sa afisati mesajul criptat - pentru
c=2, se citeste un set de cuvinte ce reprezinta un mesaj criptat si o cheie si trebuie sa afisati mesajul decriptat.
Date de intrare
Fișierul de intrare myszkowski.in conține pe prima linie numărul c, mesajul criptat(daca c=1) sau setul de cuvinte(daca c=2) si cheia.
Date de ieșire
Fișierul de ieșire myszkowski.out va conține pe prima linie mesajul criptat sau decripat, in functie de c.
Restricții și precizări
- mesajul si cheia sunt formate doar din litere mari
1 ≤ lungimea mesajului, lungimea cheii ≤ 10000lungimea cheii ≤ lungimea mesajului
Exemplul 1:
myszkowski.in
1 THEREISONEIMPOSTORAMONGUS IMPOSTOR
myszkowski.out
TNOSHERRSMSMGEIAOTUEPOION
Exemplul 2:
myszkowski.in
2 TNOSHERRSMSMGEIAOTUEPOION IMPOSTOR
myszkowski.out
THEREISONEIMPOSTORAMONGUS