P16801 [蓝桥杯 2026 国 B] 货架换签

题目描述

小蓝管理着一排货架,每个货架前都挂着一张标签。每张标签上写着字符 $0$ 或 $1$,从左到右组成一个长度为 $N$ 的字符串 $S$。 小蓝可以进行若干次换签操作,也可以不进行操作。一次换签操作按如下方式进行: - 在当前标签序列中选择两个互不重叠的连续片段; - 两个连续片段包含的标签数量必须相同; - 两个连续片段中写着 $1$ 的标签数量必须相同; - 将两个连续片段在原位置互换内容,其余标签保持不变,片段内部标签的相对顺序不变。 例如,在字符串 $101001$ 中,可以选择连续片段 $10$ 和连续片段 $01$。它们长度均为 $2$,且都包含一个字符 $1$,因此可以交换。 对于两个长度相同的字符串,按照通常字典序比较大小,并约定 $0$ 小于 $1$。 现在,请你求出经过任意多次合法换签操作后,小蓝能够得到的字典序最小的字符串。

输入格式

第一行包含一个整数 $N$,表示字符串长度。 第二行包含一个长度为 $N$ 的字符串 $S$,仅由字符 $0$ 和 $1$ 组成。

输出格式

输出一行,包含一个长度为 $N$ 的字符串,表示能够得到的字典序最小字符串。

说明/提示

### 【样例说明 1】 可以选择原字符串第 $1$ 到第 $2$ 个字符组成的片段 $10$,以及第 $5$ 到第 $6$ 个字符组成的片段 $01$。这两个片段长度相同,且都包含一个字符 $1$,将这两个片段交换后,得到 $011010$。 可以证明,在所有可达字符串中,$011010$ 的字典序最小。 ### 【样例说明 2】 字符串中没有字符 $1$,任意合法操作都不会改变字符串。 ### 【样例说明 3】 原字符串的每个字符 $0$ 左侧都有 $4$ 个字符 $1$。在合法操作保持约束的前提下,无法得到字典序更小的字符串。 ### 【评测用例规模与约定】 对于 $30\%$ 的评测用例,$1 \le N \le 10$。 对于 $60\%$ 的评测用例,$1 \le N \le 5000$。 对于所有评测用例,$1 \le N \le 2 \times 10^5$,且 $S$ 仅由字符 $0$ 和 $1$ 组成。