#G0125. 构造字符串【2025模拟赛T5】

构造字符串【2025模拟赛T5】

题目描述

给定一个仅由小写字母构成的字符串 ss,以及一个长度为 2626 的数组 cnt{\rm cnt},其中 cnti{\rm cnt}_i 表示第 ii 个字母(cnt0{\rm cnt}_0 表示字母 ’a’\texttt{'a'}cnt1{\rm cnt}_1 表示字母 ’b’\texttt{'b'}、……、cnt25{\rm cnt}_{25} 表示字母 ’z’\texttt{'z'} 的数量。

你需要使用 cnt{\rm cnt} 中的字符重新拼接出尽可能多的字符串,要求每个新字符串的字典序必须严格大于 sscnt{\rm cnt} 中的字符可以不用完)。

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

【名词解释】

字符串的字典序比较:从左到右逐个比较两个字符串的字符。如果在某个位置上字符不同,比较这两个字符的字母表顺序,字母序大的字符串字典序也大。如果一直比较到其中一个字符串结束,则较短的字符串字典序更小。

输入格式

第一行输入一个长度为 s|s| 的字符串 ss

第二行输入 2626 个整数 ${\rm cnt}_0,{\rm cnt}_1,\dots,{\rm cnt}_{25} \left(0 \leq {\rm cnt}_i \leq 10^9\right)$,代表每个字符还剩下多少个。

输出格式

输出一个整数,代表答案。

dcb
1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
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
42

样例解释

在第一组样例中,给了 ’a’\texttt{'a'}’b’\texttt{'b'}’c’\texttt{'c'}’d’\texttt{'d'}’e’\texttt{'e'} 字符各一个,可以构造出 "e"\texttt{"e"}"dcba"\texttt{"dcba"} 两个字典序严格大于 "dcb"\texttt{"dcb"} 的字符串。

数据规模与约定

下发文件

下发文件对应子任务 3,4,53,4,5

有合理的子任务依赖。

对于 100%100\% 的数据:保证 1s106,0cnti1091 \leq |s| \leq 10^6,0 \leq cnt_i \leq 10^9。保证 cnti{\rm cnt}_i 之和不超过 10910^9