P8324 [COCI 2021/2022 #5] Kemija

题目描述

给定 $n$ 个化学方程式。 每个参与反应的分子由若干个原子组成,每个原子由一个字母和一个数字表示,分别代表元素名称和分子中该原子的数量。如果多个分子参与反应,则分子前添加一个数字表示化学计量数。本题中只需考虑每一原子的数量,而不必考虑方程式的合理性。例如,$\texttt{3AC4B}$ 可以直接视为 $3$ 个 $\texttt A$、$3$ 个 $\texttt B$ 和 $12$ 个 $\texttt C$ 参与反应。当有不同分子位于方程式同一边时,用 $\texttt +$ 连接。 你的任务是分别检查每个方程式是否已经配平(只需考虑左右原子数量是否都对应相等)。

输入格式

第一行一个正整数 $n$,表示方程式的个数。 接下来的 $n$ 行,每行一个方程式。数据保证每个方程式字符串长度不超过 $1000$,且每个元素都只包含一个大写字母。

输出格式

对于每个方程式,如果已经配平则输出 $\texttt{DA}$,否则输出 $\texttt{NE}$。

说明/提示

**【样例 3 解释】** |序号|左侧原子|右侧原子|结果| | :----------: | :----------: | :----------: | :----------: | |$1$|$4 \times \texttt H, 6 \times \texttt O, 2 \times \texttt C$|$4 \times \texttt H, 6 \times \texttt O, 2 \times \texttt C$|$\green{\texttt{DA}}$| |$2$|$2 \times \texttt H, \red{1 \times \texttt S}, 4 \times \texttt O$|$2 \times \texttt H, 4 \times \texttt O$|$\red{\texttt{NE}}$| |$3$|$1 \times \texttt N, \red{5 \times \texttt H}, 1 \times \texttt S, 4 \times \texttt O$|$1 \times \texttt N, \red{4 \times \texttt H}, 1 \times \texttt S, 4 \times \texttt O$|$\red{\texttt{NE}}$| |$4$|$1 \times \texttt C, 4 \times \texttt H, 4 \times \texttt O$|$1 \times \texttt C, 4 \times \texttt H, 4 \times \texttt O$|$\green{\texttt{DA}}$| **【数据规模与约定】** **本题采用捆绑测试。** - Subtask 1(10 pts):方程式中均不含数字。 - Subtask 2(10 pts):分子式中均不含数字。 - Subtask 3(30 pts):无特殊限制。 对于 $100\%$ 的数据,$1 \le n \le 1000$。 **【来源】[COCI 2021-2022#5](https://hsin.hr/coci/contest5_tasks.pdf) Task 1 Kemija。**