/ 基础 / 题库 /

Kemija

Kemija

时间限制:1秒  内存限制:256M


题目描述

给定 \(n\) 个化学方程式。

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

你的任务是分别检查每个方程式是否已经配平(只需考虑左右原子数量是否都对应相等)。

输入格式

第一行一个正整数 \(n\),表示方程式的个数。

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

输出格式

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

输入输出样例 #1

输入 #1

3
A+B->AB
AB+CD->AC+DB
AB+B->AB

输出 #1

DA
DA
NE

输入输出样例 #2

输入 #2

2
2AB+A->3AB
2AB+2AC+2BC->4ABC

输出 #2

NE
DA

输入输出样例 #3

输入 #3

4
2H2O+2CO2->2H2CO3
H2SO4->H2O4
NH3+H2SO4->NH4SO4
CH4+2O2->CO2+2H2O

输出 #3

DA
NE
NE
DA

说明/提示

【样例 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\)。

信息

ID
1118
难度
10
分类
(无)
标签
(无)
递交数
1
已通过
0
通过率
0%
被复制
2
上传者