A7079.烧鸟串串
入门
官方
通过率:0%
时间限制:1.00s
内存限制:128MB
题目描述
AC狗非常喜欢吃烧鸟,今天点了一个烧鸟串串。
狗星上的烧鸟串串可能有亿些。。。长,一个烧鸟串串上串了 n 块食物,食物可以是烧鸟(用字符 a
表示),可以是青椒(用字符 b
表示),可以是葱(从字符 c
表示)。
众所周知,烧鸟串串很多时候只需要吃掉烧鸟和青椒,并且可以从串串上任意一个位置吃下一块。作为一个非常喜欢烧鸟串串的狗狗,AC狗希望对于一个剩余长度为 x 的烧鸟串串,总共有 x 个位置可以选择去吃,需要选择一个位置吃掉一块食物,剩下的食物按原顺序不变,使得这个串串在所有 x 个能得到的长度为 x−1 的烧鸟串串中字典序最大。
AC狗每次可以吃一块食物,请问需要多少次才能 吃完所有的烧鸟,并且找到每吃完一块之后剩下的烧鸟串串中还剩多少块烧鸟。
输入格式
第一行包含一个整数 n,表示烧鸟串串长度。
第二行包含一个长度为 n 的仅包含小写字母 abc
的字符串。
输出格式
输出一行,表示至少需要 x 次才能 吃完所有的烧鸟。
接下来一行包含 x 个整数,用空格隔开,表示每吃完一块之后剩下的烧鸟串串中还剩多少块烧鸟。
输入输出样例
输入#1
9 abcabcabc
输出#1
5 2 2 1 1 0
输入#2
9 cbacbacba
输出#2
5 2 2 1 1 0
说明/提示
样例一中,每次吃完剩下的串为:
bcabcabc
cabcabc
cbcabc
ccabc
ccbc
样例二中,每次吃完剩下的串为:
cbcbacba
ccbacba
ccbcba
cccba
cccb
数据范围与约定
对于 50% 的数据,1≤n≤100。
对于 100% 的数据,1≤n≤104。