Codeforces Round 155 (Div. 2) |
---|
Закончено |
Строка x называется анаграммой строки y, если можно переставить буквы в строке x, чтобы получилась в точности строка y. Например, строки «DOG» и «GOD» являются анаграммами, строки «BABA» и «AABB» — тоже, а вот строки «ABBAC» и «CAABA» — нет.
Вам задано две строки s и t одинаковой длины, состоящие из заглавных букв латинского алфавита. Вам необходимо получить из строки s анаграмму строки t. Вам разрешается выполнять операции замены: каждая операция состоит в замене какого-то символа строки s на любой другой. Получите анаграмму строки t за наименьшее количество операций замены. Если можно получить несколько анаграмм строки t за наименьшее количество операций, получите лексикографически наименьшую строку.
Лексикографический порядок строк — это привычный нам порядок «как в словаре». Формально, строка p длины n лексикографически меньше строки q такой же длины, если p1 = q1, p2 = q2, ..., pk - 1 = qk - 1, pk < qk для некоторого k (1 ≤ k ≤ n). Здесь символы в строках нумеруются от 1. Символы строк сравниваются по алфавитному порядку.
Входные данные состоят из двух строк. В первой дана строка s, во второй – строка t. Строки имеют одинаковую длину (от 1 до 105 символов) и состоят из прописных букв латинского алфавита.
В первой строке выведите z — наименьшее количество операций замены, требуемых для того, чтобы получить анаграмму строки t из строки s. Во второй строке выведите лексикографически минимальную анаграмму, которую можно получить за z операций.
ABA
CBA
1
ABC
CDBABC
ADCABD
2
ADBADC
Во втором примере существует восемь анаграмм строки t, которые можно получить из строки s заменой ровно двух букв: «ADBADC», «ADDABC», «CDAABD», «CDBAAD», «CDBADA», «CDDABA», «DDAABC», «DDBAAC». Эти анаграммы перечислены в лексикографическом порядке. Лексикографически минимальная анаграмма — это «ADBADC».
Название |
---|