UVA271 Simply Syntax

题目描述

在赫多尼亚这片土地上,官方语言是赫多尼亚语。一位赫多尼亚语教授注意到她的许多学生仍未很好地掌握赫多尼亚语的句法。由于厌倦了纠正大量的句法错误,她决定给学生一个挑战:要求他们编写一个程序,能够检查他们所写句子的句法正确性。正如赫多尼亚人的天性一样,赫多尼亚语的句法也令人愉快地简单。规则如下: 1. 该语言中仅包含字符 `p` 到 `z`,以及 `N`、`C`、`D`、`E` 和 `I`。 2. 每个从 `p` 到 `z` 的字符都是一个正确的句子。 3. 若 $s$ 是一个正确的句子,则 $\texttt{N}s$ 也是一个正确的句子。 4. 若 $s$ 和 $t$ 都是正确的句子,则 $\texttt{C}st$、$\texttt{D}st$、$\texttt{E}st$ 和 $\texttt{I}st$ 也都是正确的句子。 5. 规则 1 至规则 4 是判断句子句法正确性的全部规则。 你需要编写一个程序,检查所给句子是否满足规则 1 到规则 4 中的句法要求。

输入格式

输入包含多个句子,每个句子仅由字符 `p` 到 `z` 以及 `N`、`C`、`D`、`E` 和 `I` 组成。每个句子以换行符结束。句子集合以文件结束符(EOF)终止。如果需要,可以假设每个句子最多有 256 个字符,且至少有一个字符。

输出格式

对于输入中的每个句子,如果其形式正确则输出 `YES`,否则输出 `NO`。输出的顺序与输入中句子的顺序一致。每个输出结果后需跟一个换行符,所有输出结果结束后跟随文件结束符(EOF)。

说明/提示

由 DeepSeek 辅助翻译。