CF1915D Unnatural Language Processing

题目描述

Lura 感到无聊,决定用五个字母 $\texttt{a}$、$\texttt{b}$、$\texttt{c}$、$\texttt{d}$、$\texttt{e}$ 创造一种简单的语言。该语言中有两类字母: - 元音字母:$\texttt{a}$ 和 $\texttt{e}$,用 $\textsf{V}$ 表示。 - 辅音字母:$\texttt{b}$、$\texttt{c}$、$\texttt{d}$,用 $\textsf{C}$ 表示。 该语言中有两种音节类型:$\textsf{CV}$(辅音加元音)或 $\textsf{CVC}$(元音前后都有辅音)。例如,$\texttt{ba}$、$\texttt{ced}$、$\texttt{bab}$ 都是音节,但 $\texttt{aa}$、$\texttt{eda}$、$\texttt{baba}$ 不是。该语言中的一个单词由若干音节组成。Lura 已经写下了一个单词,但她不知道如何将其划分为音节。请你帮助她将单词划分为音节。 例如,给定单词 $\texttt{bacedbab}$,可以划分为 $\texttt{ba.ced.bab}$(点号 $\texttt{.}$ 表示音节分界)。

输入格式

输入包含多组测试数据。第一行包含一个整数 $t$($1 \leq t \leq 100$),表示测试用例的数量。接下来是每个测试用例的描述。 每个测试用例的第一行包含一个整数 $n$($1 \leq n \leq 2 \cdot 10^5$),表示单词的长度。 每个测试用例的第二行包含一个长度为 $n$ 的字符串,仅由小写拉丁字母组成,表示该单词。 所有给定的单词都是该语言中的合法单词,即只包含 $\texttt{a}$、$\texttt{b}$、$\texttt{c}$、$\texttt{d}$、$\texttt{e}$ 这五个字母,并且每个单词都由若干音节组成。 所有测试用例中 $n$ 的总和不超过 $2 \cdot 10^5$。

输出格式

对于每个测试用例,输出一个字符串,表示将单词按音节划分后,用点号 $\texttt{.}$ 分隔相邻音节的结果。 如果有多种划分方式,输出任意一种即可。输入保证至少存在一种合法划分。

说明/提示

由 ChatGPT 4.1 翻译