Олимпиадный тренинг

Задача . C. Название компании


Клиент банка Олег и аналитик Игорь — хорошие друзья. Однако, иногда они спорят по мелочам. Недавно они основали новую компанию, но испытывают трудности с выбором названия для компании.

Чтобы разрешить спор, они решили сыграть в игру. Название компании будет состоять из n букв. У Олега и Игоря есть по одному набору из n букв (наборы могут содержать одну и ту же букву несколько раз, наборы могут отличаться). Изначально название компании состоит из n знаков вопроса. Олег и Игорь ходят по очереди, Олег ходит первым. На каждом ходу игрок выбирает одну букву c, имеющуюся у него в наборе, и заменяет один любой знак вопроса на эту букву c. Затем одна такая буква c исчезает из его набора. Игра оканчивается, когда все знаки вопроса заменены на какие-то буквы.

Например, предположим, у Олега есть набор букв {i, o, i}, а у Игоря есть набор букв {i, m, o}. Одна из возможных игр приведена ниже:

Изначально название компании равно ???.

Олег заменяет второй знак вопроса на «i». Название компании теперь ?i?. Набор букв Олега теперь равен {i, o}.

Игорь заменяет третий знак вопроса на «o». Название компании теперь ?io. Набор букв Игоря теперь равен {i, m}.

Наконец, Олег заменяет первый знак вопроса на «o». Название компании теперь oio. Набор букв Олега равен {i}.

В итоге название компании равно oio.

Олег хочет, чтобы название компании было лексикографически как можно меньше, а Игорь хочет, чтобы название компании было лексикографически как можно больше. Каким будет название компании, если Олег и Игорь играют оптимально?

Строка s = s1s2...sm лексикографически меньше строки t = t1t2...tm (если s ≠ t), если si < ti, где i — наименьший индекс такой, что si ≠ ti (т.е. sj = tj для всех j < i).

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

Первая строка содержит строку s длины n (1 ≤ n ≤ 3·105). Все символы строки — строчные латинские буквы. Строка описывает множество букв в наборе Олега.

Вторая строка содержит строку t длины n. Все символы строки — строчные латинские буквы. Строка описывает множество букв в наборе Игоря.

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

Выведите строку из n строчных латинских букв — название компании при условии, что Олег и Игорь играют оптимально.

Примечание

Одна из оптимальных игр в первом примере:

  • Изначально название компании равно ???????.
  • Олег заменяет первый знак вопроса на «f». Название компании становится f??????.
  • Игорь заменяет второй знак вопроса на «z». Название компании становится fz?????.
  • Олег заменяет третий знак вопроса на «f». Название компании становится fzf????.
  • Игорь заменяет четвертый знак вопроса на «s». Название компании становится fzfs???.
  • Олег заменяет пятый знак вопроса на «i». Название компании становится fzfsi??.
  • Игорь заменяет шестой знак вопроса на «r». Название компании становится fzfsir?.
  • Олег заменяет седьмой знак вопроса на «k». Название компании становится fzfsirk.

Во втором примере независимо от того, как играют друзья, название компании всегда получится равным xxxxxx.


Примеры
Входные данныеВыходные данные
1 tinkoff
zscoder
fzfsirk
2 xxxxxx
xxxxxx
xxxxxx
3 ioi
imo
ioi

time 2000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя