Codeforces Round 498 (Div. 3) |
---|
Закончено |
Заданы две строки $$$a$$$ и $$$b$$$, состоящие из строчных букв латинского алфавита, каждая длины $$$n$$$. Символы обеих строк имеют позиции от $$$1$$$ до $$$n$$$ включительно.
Вы можете производить следующие изменения:
Заметим, что для нечетного $$$n$$$ формально можно поменять $$$a_{\lceil\frac{n}{2}\rceil}$$$ с $$$a_{\lceil\frac{n}{2}\rceil}$$$ (и то же самое для строки $$$b$$$), но это изменение не имеет смысла. Также вы можете менять местами одинаковые символы, но это изменение тоже не имеет смысла.
Вы хотите сделать эти строки равными, применяя изменения, описанные выше, в любом порядке. Но очевидно, что бывают случаи, когда невозможно сделать две строки равными, применяя эти обмены.
За один предварительный ход вы можете заменить любой символ в $$$a$$$ любым другим символом. Другими словами, за один предварительный ход вы можете выбрать любую позицию $$$i$$$ ($$$1 \le i \le n$$$), любой символ $$$c$$$ и применить следующее присвоение: $$$a_i := c$$$.
Ваша задача — найти минимальное количество предварительных ходов, после применения которых можно будет сделать строки $$$a$$$ и $$$b$$$ равными при помощи применения некоторого количества изменений, описанных в списке выше.
Заметим, что количество изменений, которое вы сделаете после некоторого количества предварительных ходов, не важно. Также заметим, что вы не можете применять предварительные ходы к строке $$$b$$$ или применять какой-либо предварительный ход после того, как первое изменение было сделано.
Первая строка входных данных содержит одно целое число $$$n$$$ ($$$1 \le n \le 10^5$$$) — длину строк $$$a$$$ и $$$b$$$.
Вторая строка содержит строку $$$a$$$, состоящую ровно из $$$n$$$ строчных букв латинского алфавита.
Третья строка содержит строку $$$b$$$, состоящую ровно из $$$n$$$ строчных букв латинского алфавита.
Выведите одно целое число — минимальное число предварительных ходов, которое необходимо применить перед изменениями, чтобы можно было сделать равными строки $$$a$$$ и $$$b$$$ при помощи какой-то последовательности изменений из списка, описанного выше.
7
abacaba
bacabaa
4
5
zcabd
dbacz
0
В первом тестовом примере предварительные ходы будут следующие: $$$a_1 := $$$'b', $$$a_3 := $$$'c', $$$a_4 := $$$'a' и $$$a_5:=$$$'b'. После этого строка $$$a = $$$"bbcabba". Теперь мы можем получить равные строки при помощи следующей последовательности изменений: $$$swap(a_2, b_2)$$$ и $$$swap(a_2, a_6)$$$. Не существует способа использовать менее $$$4$$$ предварительных ходов перед последовательностью изменений для того, чтобы сделать строки равными, поэтому ответ на первый тестовый пример равен $$$4$$$.
Во втором тестовом примере строки $$$a$$$ и $$$b$$$ почти равны. Здесь не требуется предварительных ходов. Но нужна следующая последовательность изменений: $$$swap(b_1, b_5)$$$, $$$swap(a_2, a_4)$$$.
Название |
---|