CF318B Strings of Power
题目描述
Volodya 喜欢听重金属音乐,偶尔也喜欢阅读。难怪 Volodya 对与自己最喜欢的音乐风格相关的文本特别感兴趣。
Volodya 称一个字符串是“强力(powerful)”的,如果它以 "heavy" 开头并以 "metal" 结尾。找到所有强力子串(Volodya 所说的子串,是指字符串中一段连续的字符)会让他感到非常高兴。最近,在读到某段文本时,他感到非常有活力。于是 Volodya 决定统计文本中所有强力子串的数量,并因此而自豪一整天。请帮助他完成这个有难度的任务。若两个子串在文本中出现的位置不同,则这两个子串视为不同的。
为简单起见,假设 Volodya 的文本可以用一个字符串表示。
输入格式
输入包含一个非空字符串,只包含小写拉丁字母。该字符串长度不超过 $10^{6}$ 个字符。
输出格式
输出一个整数,表示该字符串的强力子串的数量。
请不要在 C++ 中使用 %lld 格式化读写 64 位整数。推荐使用 cin、cout 或 %I64d。
说明/提示
在第一个样例中,字符串 "heavymetalisheavymetal" 包含两次强力子串 "heavymetal",而整个字符串 "heavymetalisheavymetal" 当然也是强力的。
在第二个样例中,字符串 "heavymetalismetal" 包含两个强力子串:"heavymetal" 以及 "heavymetalismetal"。
由 ChatGPT 5 翻译