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$ 组成。