Задача №114935. Преобразование строки

Даны две строки \(S\) и \(T\) из строчных букв английского алфавита.

Посмотрим на следующий процесс. Рассмотрим не более одного раза каждый символ, хотя бы где-то входящий в первую строку. После чего, для рассматриваемого символа \(x\) определим другой символ \(p(x) \neq x\) и заменим некоторые вхождения \(x\) в \(S\) на \(p(x)\). Определите, возможно ли в ходе такого процесса получить из строки \(S\) строку \(T\). При этом разные символы можно заменять на один и тот же символ или на символ, который заменяться не будет.

Например, пусть \(S = \) «aabab», \(T = \) «abbbc». Из \(S\) можно получить \(T\), если выбрать p('a') = 'b' , p('b') = 'c' и заменить второе и третье вхождение 'a' на p('a') , второе вхождение 'b' на p('b') .

А если \(S = \) «aabaс», \(T = \) «bbbbb», то все вхождения 'a' и 'c' были заменены на 'b'.

Входные данные

В первой строке вам дано число \(n\) \((1 \leqslant n \leqslant 200\,000)\). Во второй строке задана \(S\). В третьей строке задана \(T\). Обе строки имеют длину \(n\) и состоят только из букв от 'a' до 'z' .

Выходные данные

Если возможно осуществить описанный процесс так, чтобы из \(S\) получилась \(T\), выведите «YES», на следующей строке выведите \(m\) – количество различных символов \(S\), которые хотя бы раз заменялись. Обозначим эти символы за \(c_1,\ c_2,\ \ldots \ c_m\). После чего выведите \(m\) строк. На \(i\)-й строке необходимо вывести символы \(c_i\) и \(p(c_i)\) через пробел. Если это сделать невозможно, выведите «NO».

Система оценки

В данной задаче \(50\) тестов, помимо тестов из условия, каждый из них оценивается в \(2\) балла. Результаты работы ваших решений на всех тестах будут доступны сразу во время соревнования.

Решения, корректно работающие, когда обе программы состоят только из символов 'a' и 'b', наберут не менее 20 баллов.

Решения, корректно работающие, когда обе программы состоят только из символов 'a', 'b', 'c', наберут не менее 40 баллов.

Решения, корректно работающие при \(n \leqslant 1\,000\) наберут не менее 60 баллов.

Решения, корркетно работающие только для случая, когда описанными заменами из одной строки вторую получить невозможно, будут оцениваться в 0 баллов.

Примеры
Входные данные
3
aab
abb
Выходные данные
YES
1
a b
Входные данные
4
aabb
eeff
Выходные данные
YES
2
a e
b f
Входные данные
3
abc
abc
Выходные данные
YES
0
Входные данные
5
bcbdb
xcydz
Выходные данные
NO
Входные данные
3
abc
ddd
Выходные данные
YES
3
a d
b d
c d
Входные данные
3
abc
aaa
Выходные данные
YES
2
b a
c a
Сдать: для сдачи задач необходимо войти в систему