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

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

题目描述

小蓝管理着一排货架,每个货架前都挂着一张标签。每张标签上写着字符 0011,从左到右组成一个长度为 NN 的字符串 SS

小蓝可以进行若干次换签操作,也可以不进行操作。一次换签操作按如下方式进行:

  • 在当前标签序列中选择两个互不重叠的连续片段;
  • 两个连续片段包含的标签数量必须相同;
  • 两个连续片段中写着 11 的标签数量必须相同;
  • 将两个连续片段在原位置互换内容,其余标签保持不变,片段内部标签的相对顺序不变。

例如,在字符串 101001101001 中,可以选择连续片段 1010 和连续片段 0101。它们长度均为 22,且都包含一个字符 11,因此可以交换。

对于两个长度相同的字符串,按照通常字典序比较大小,并约定 00 小于 11

现在,请你求出经过任意多次合法换签操作后,小蓝能够得到的字典序最小的字符串。

输入格式

第一行包含一个整数 NN,表示字符串长度。

第二行包含一个长度为 NN 的字符串 SS,仅由字符 0011 组成。

输出格式

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

6
101001
011010

5
00000
00000
8
11110000
11110000

提示

【样例说明 1】

可以选择原字符串第 11 到第 22 个字符组成的片段 1010,以及第 55 到第 66 个字符组成的片段 0101。这两个片段长度相同,且都包含一个字符 11,将这两个片段交换后,得到 011010011010

可以证明,在所有可达字符串中,011010011010 的字典序最小。

【样例说明 2】

字符串中没有字符 11,任意合法操作都不会改变字符串。

【样例说明 3】

原字符串的每个字符 00 左侧都有 44 个字符 11。在合法操作保持约束的前提下,无法得到字典序更小的字符串。

【评测用例规模与约定】

对于 30%30\% 的评测用例,1N101 \le N \le 10

对于 60%60\% 的评测用例,1N50001 \le N \le 5000

对于所有评测用例,1N2×1051 \le N \le 2 \times 10^5,且 SS 仅由字符 0011 组成。