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
1se pun litereleA,B,C…Z - Pe linia
2se pun litereleB,C,D…Z,A - Pe linia
3se pun litereleC,D,E…Z,A,B - linia
4se pun litereleD,E,F…Z,A,B,C - …
- Pe linia
26se pun litereleZ,A,B,C, …Y - Cu alte cuvinte, pentru fiecare linie
i(1≤i≤26), se vor lua primelei-1litere din alfabet si se pun la sfarsitul acestuia. - Cifrul mai foloseste o cheie si un mesaj. Cheia o putem considera un vector
Ccare arenlitere si incepe de pe pozitia0iar mesajul il vom considera un vectorMcare 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.