P15668 [ICPC 2024 Jakarta R] Scrambled Scrabble

题目描述

你正在使用一套标准的 $26$ 个大写英文字母(A 到 Z)玩一个单词游戏。在这个游戏中,你可以按以下规则构成元音和辅音: - 字母 A、E、I、O 和 U 只能构成元音。 - 字母 Y 既可以构成元音,也可以构成辅音。 - 除了 A、E、I、O、U 和 Y 之外,其余每个字母只能构成辅音。 - 字符串 NG 在拼接在一起时可以构成一个单独的辅音。 定义一个**音节**为一个辅音、一个元音和一个辅音按顺序拼接而成的字符串。一个**单词**则是一个或多个音节的拼接。 给定一个字符串 $S$,你希望用它来构造一个单词。你可以从 $S$ 中删除零个或多个字母,并重新排列剩余的字母来构成单词。请找出可以构造的最长单词的长度,或者确定无法构造任何单词。

输入格式

一行,包含一个字符串 $S$($1 \leq |S| \leq 5000$)。字符串 $S$ 仅由大写英文字母组成。

输出格式

如果无法构造任何单词,则输出 0。否则,输出一个整数,表示可以构造的最长单词的长度。

说明/提示

**样例输入/输出 #1 的解释** 一个可能的最长单词是 JAKCARTAP,它由音节 JAK、CAR 和 TAP 组成。 **样例输入/输出 #2 的解释** 整个字符串 $S$ 本身就是一个单词,它由一个音节构成,该音节是辅音 NG、元音 E 和辅音 NG 的拼接。 **样例输入/输出 #3 的解释** 整个字符串 $S$ 本身就是一个单词,它由一个音节构成,该音节是辅音 Y、元音 Y 和辅音 Y 的拼接。 **样例输入/输出 #4 的解释** 整个字符串 $S$ 本身就是一个单词,它由两个音节构成:DAN 和 GAN。 **样例输入/输出 #5 的解释** 无法构造任何单词,因此输出 0。 翻译由 DeepSeek V3.2 完成