时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 1024 M,其他语言2048 M
64bit IO Format: %lld
题目描述

给定一个仅由小写字母构成的字符串

,以及一个长度为

的数组

,其中

表示第

个字母(

表示字母

、

表示字母

、……、

表示字母

)的数量。

你需要使用

中的字符重新拼接出尽可能多的字符串,要求每个新字符串的字典序必须严格大于

(

中的字符可以不用完)。

请计算最多能构造多少个这样的字符串。不要求互不相同,计数按构造的个数累加。
【名词解释】

字符串的
字典序比较:从左到右逐个比较两个字符串的字符。如果在某个位置上字符不同,比较这两个字符的字母表顺序,字母序大的字符串字典序也大。如果一直比较到其中一个字符串结束,则较短的字符串字典序更小。
输入描述:
第一行输入一个长度为
的字符串
。
第二行输入
个整数
,代表每个字符还剩下多少个。除此之外,保证
之和不超过
。
输出描述:
输出一个整数,代表答案。
示例2
输入
复制
fedcb
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2