AT_arc136_a.[ARC136A] A ↔ BB
入门
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
给定一个由 A、B、C 组成、长度为 N 的字符串 S。
你可以对 S 进行如下两种操作,操作的顺序和次数不限:
- 从 S 中选择一个
A并删除,在该位置写入新的BB。 - 从 S 中选择一对相邻的
BB并删除,在该位置写入新的A。
请你求出所有可能通过上述操作得到的 S 中,字典序最小的字符串。
什么是字典序?字典序简单来说就是“单词在字典中的排列顺序”。更严格地说,判断两个不同字符串 S 和 T 的大小的算法如下:
设 S 的第 i 个字符记为 Si。若 S 字典序小于 T,记作 S<T;若大于,记作 S>T。
- 取 S 和 T 中较短的字符串长度为 L,依次比较 i=1,2,…,L 的 Si 和 Ti 是否相同。
- 若存在 Si=Ti 的 i,取最小的此类 i 为 j,比较 Sj 和 Tj,若 Sj 的字母顺序小于 Tj,则 S<T,否则 S>T,算法结束。
- 若所有 Si=Ti,则比较长度,若 S 比 T 短,则 S<T,否则 S>T,算法结束。
输入格式
输入从标准输入读入,格式如下:
N S
输出格式
请输出答案。
输入输出样例
输入#1
4 CBAA
输出#1
CAAB
输入#2
1 A
输出#2
A
输入#3
6 BBBCBB
输出#3
ABCA
说明/提示
限制条件
- 1≤N≤200000
- S 是由
A、B、C组成的长度为 N 的字符串
样例解释 1
可以按如下方式操作:
- 初始时,S=
CBAA。 - 删除第 3 个字符的
A,写入BB,S=CBBBA。 - 删除第 2、3 个字符的
BB,写入A,S=CABA。 - 删除第 4 个字符的
A,写入BB,S=CABBB。 - 删除第 3、4 个字符的
BB,写入A,S=CAAB。
无法将 S 变为比 CAAB 字典序更小的字符串。因此答案为 CAAB。
样例解释 2
一次操作都不进行。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?