ManiFast / Substitution_cipher

Like Caesar cipher

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Substitution_cipher

Like Caesar cipher

C. Шифр замены / Task C. Substitution cipher

Шифр замены ставит в соответствие каждому символу алфавита c некоторый
символ алфавита f(c). Шифр замены можно применить к строке несколько раз.
По заданной исходной строке и зашифрованной строке определите, сколько раз
был применен шифр замены.

/ The substitution cipher assigns to each letter of the Latin alphabet a symbol of the f(c)
alphabet. This cipher could be applied to a line several times. Given the initial line and
the encrypted line, determine how many times the substitution cipher has been applied.

Входные данные / Input format

В первой строке записаны 26 символов. k-й символ этой строки показывает, какой
символ соответствует k-му по счету символу латинского алфавита.
Во второй строке дано число n (1≤n≤1000000) — длина исходной и
зашифрованной строки.
В каждой из следующих двух строк записана строка длиной n, состоящая из
строчных латинских символов.
Символы латинского алфавита нумеруются с единицы, начиная с символа a и
заканчивая символом z.

/ The first line contains 26 symbols. The k-th symbol shows which letter corresponds to
the k-th letter of the Latin alphabet.
The second line contains number n (1≤n≤1000000), which is the length of the initial
and encrypted lines.
The next two lines have the length n. These lines consist of lowercase letters of the
Latin alphabet.
Each letter of the Latin alphabet has their own number (a = 1 and z = 26).

Выходные данные / Output format

В единственной строке выходного файла выведите необходимое количество
операций замены символов. / Output the necessary number of symbol substitution
operations in the output file’s only line.
Если ответа не существует, выведите -1. / If the answer doesn’t exist, output -1.

Система оценки / Evaluation criteria

Решения, верно работающие при n≤1000 будут получать не менее 60 баллов. /
Solutions working appropriately only if n≤1000 will get at least 60 points.

Пример / Example

входные данные / Standard input
bcdefghijklmnopqrstuvwwwww
7
abacaba
cdcecdc

выходные данные / Standard output

2

Примечание / Note

В тесте из примера первая строка будет меняться следующим образом: / Here is
how the first line from the example is going to change:

После первой замены всех символов строка abacaba превратится в
строку bcbdbcb (символ a заменяется на b, b — на c, c — на d) / After
the first substitution, the abacaba line is replaced by bcbdbcb; that is, a
is replaced by b, b by c, and c by d;

После второй замены всех символов уже новая
строка bcbdbcb превратится в cdcecdc (символ b заменяется
на c, c — на d, d — на e) / After the second substitution, the new
bcbdbcb line will be replaced by cdcecdc; that is, b is replaced by c, c
by d, and d by e;

То есть после двух замен всех символов мы получили вторую строку,
значит ответ равен 2 / After two substitutions, we get line 2, so the
answer is 2

About

Like Caesar cipher


Languages

Language:C++ 100.0%