Myszkowski
Cifrul Myszkowski
functioneaza asa:
- notam cu
n
lungimea mesajului, si cum
lungimea cheii;
- mesajul se pozitioneaza intr-o matrice cu
m
coloane
- Pentru mesajul
THEREISONEIMPOSTORAMONGUS
si cheiaIMPOSTOR
atunci 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
j
va 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
k
coloane 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 cul
litere, 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 ≤ 10000
lungimea cheii ≤ lungimea mesajului
Exemplul 1:
myszkowski.in
1 THEREISONEIMPOSTORAMONGUS IMPOSTOR
myszkowski.out
TNOSHERRSMSMGEIAOTUEPOION
Exemplul 2:
myszkowski.in
2 TNOSHERRSMSMGEIAOTUEPOION IMPOSTOR
myszkowski.out
THEREISONEIMPOSTORAMONGUS