Codeforces Round 531 (Div. 3) |
---|
Закончено |
Задана строка $$$s$$$, состоящая ровно из $$$n$$$ символов '0', '1' и '2'. Такие строки называются троичными.
Ваша задача — заменить минимальное количество символов в строке другими символами, чтобы получилась сбалансированная троичная строка (сбалансированная троичная строка — это троичная строка, в которой количество символов '0' равно количеству символов '1' и количество символов '1' (и, очевидно, '0') равно количеству символов '2'.
Среди всех сбалансированных троичных строк вам необходимо получить лексикографически (алфавитно) минимальную.
Заметьте, что вы не можете удалять символы из строки и добавлять символы в строку. Также заметьте, что вы можете заменять заданные символы только на символы '0', '1' и '2'.
Гарантируется, что ответ существует.
Первая строка входных данных содержит одно целое число $$$n$$$ ($$$3 \le n \le 3 \cdot 10^5$$$, $$$n$$$ делится на $$$3$$$) — количество символов в $$$s$$$.
Вторая строка входных данных содержит строку $$$s$$$, состоящую ровно из $$$n$$$ символов '0', '1' и '2'.
Выведите одну строку — лексикографически (алфавитно) минимальную сбалансированную троичную строку, полученную из заданной при помощи минимального количества замен.
Так как $$$n$$$ делится на $$$3$$$, то очевидно, что ответ существует. Также очевидно, что существует только один возможный ответ.
3 121
021
6 000000
001122
6 211200
211200
6 120110
120120
Название |
---|