Строка называется правильной тогда и только тогда, когда она состоит из символов "0" и "1", а также в ней отсутствуют избыточные лидирующие нули. Вот несколько примеров: «0», «10», «1001».
Задана правильная строка s.
Над этой строкой можно проводить два типа операций:
Определим val(s), как такое число, что s является его двоичным представлением.
Правильная строка a меньше другой правильной строки b тогда и только тогда, когда val(a) < val(b).
Ваша задача — найти минимальную правильную строку, которую можно получить из заданной, применив некоторую последовательность выше описанных операций. Операции можно использовать в любом порядке любое количество раз (или не использовать совсем).
В первой строке записано одно целое число n (1 ≤ n ≤ 100) — длина строки s.
Вторая строка содержит строку s из символов "0" и "1". Гарантируется, что строка s правильная.
Выведите одну строку — минимальную правильную строку, которую можно получить из заданной.
4
1001
100
1
1
1
В первом примере можно получить ответ следующей последовательностью операций:
«1001» «1010» «1100» «100».
Во втором примере невозможно получить меньший ответ никакой последовательностью операций.
Название |
---|