Beaufort
Cifrul Beaufort este un cifre ce foloseste o matrice cu litere de marimea 26x26
iar liniile si coloanele vor avea asociata o litera (linia si coloana 1
le vom nota cu A
, linia si coloana 2
cu B
…, linia si coloana 26
cu Z
).
Matricea se va forma asa:
- Pe linia
1
se pun litereleA
,B
,C
…Z
- Pe linia
2
se pun litereleB
,C
,D
…Z
,A
- Pe linia
3
se pun litereleC
,D
,E
…Z
,A
,B
- linia
4
se pun litereleD
,E
,F
…Z
,A
,B
,C
- …
- Pe linia
26
se pun litereleZ
,A
,B
,C
, …Y
- Cu alte cuvinte, pentru fiecare linie
i
(1≤i≤26
), se vor lua primelei-1
litere din alfabet si se pun la sfarsitul acestuia. - Cifrul mai foloseste o cheie si un mesaj. Cheia o putem considera un vector
C
care aren
litere si incepe de pe pozitia0
iar mesajul il vom considera un vectorM
care incepe si el de pe pozitia0
. - pentru fiecare litera
M[i]
, cautam pe coloanaM[i]
literaC[i%n]
si afisam pe ce linie se afla,0 ≤ i < lungimea mesajului
.
Cerința
Dandu-se o cheie si un mesaj, sa se afle cum va arata mesajul dupa o codificare.Date de intrare
Fișierul de intrare beaufort.in
conține pe prima linie cheia iar pe a doua linie un mesaj.
Date de ieșire
Fișierul de ieșire beaufort.out
va conține pe prima linie mesajul dupa o codificare.
Restricții și precizări
1≤lungimea mesajului, lungimea cheii≤10000
Exemplul 1:
beaufort.in
FORTIFICATION DEFENDTHEEASTWALLOFTHECASTLE
beaufort.out
CKMPVCPVWPIWUJOGIUAPVWRIWUUK
Exemplul 2:
beaufort.in
FORTIFICATION CKMPVCPVWPIWUJOGIUAPVWRIWUUK
beaufort.out
DEFENDTHEEASTWALLOFTHECASTLE
Explicație
Matricea arata asa:
# 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 # --------------------------------------------------- A 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 B 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 A C C D E F G H I J K L M N O P Q R S T U V W X Y Z A B D D E F G H I J K L M N O P Q R S T U V W X Y Z A B C E E F G H I J K L M N O P Q R S T U V W X Y Z A B C D F F G H I J K L M N O P Q R S T U V W X Y Z A B C D E G G H I J K L M N O P Q R S T U V W X Y Z A B C D E F H H I J K L M N O P Q R S T U V W X Y Z A B C D E F G I I J K L M N O P Q R S T U V W X Y Z A B C D E F G H J J K L M N O P Q R S T U V W X Y Z A B C D E F G H I K K L M N O P Q R S T U V W X Y Z A B C D E F G H I J L L M N O P Q R S T U V W X Y Z A B C D E F G H I J K M M N O P Q R S T U V W X Y Z A B C D E F G H I J K L N N O P Q R S T U V W X Y Z A B C D E F G H I J K L M O O P Q R S T U V W X Y Z A B C D E F G H I J K L M N P P Q R S T U V W X Y Z A B C D E F G H I J K L M N O Q Q R S T U V W X Y Z A B C D E F G H I J K L M N O P R R S T U V W X Y Z A B C D E F G H I J K L M N O P Q S S T U V W X Y Z A B C D E F G H I J K L M N O P Q R T T U V W X Y Z A B C D E F G H I J K L M N O P Q R S U U V W X Y Z A B C D E F G H I J K L M N O P Q R S T V V W X Y Z A B C D E F G H I J K L M N O P Q R S T U W W X Y Z A B C D E F G H I J K L M N O P Q R S T U V X X Y Z A B C D E F G H I J K L M N O P Q R S T U V W Y Y Z A B C D E F G H I J K L M N O P Q R S T U V W X Z Z 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
Pentru primul exemplu, prima pereche de litere(litera F
si D
), pe coloana D
cautam litera F
. Aceasta se afla pe linia 3
adica linia C
.