100 #CSPA0003. AC鸭玩化学方程式

AC鸭玩化学方程式

题目描述

AC鸭最近开始对化学方程式感兴趣了,他每天钻研25小时的化学方程式,现在“荣幸”的被老师选为了化学课代表,成为化学课代表后,它有了一个至高无上的权利:帮助老师检查其他同学的作业完成情况,所有的作业都由化学方程式组成,他的任务就是检查化学方程式是否平衡,化学方程式是一种使用符号和公式来表示化学反应的方法,在化学反应中,一组初始分子发生反应以产生另一组新的分子。

一个化学方程式分为左右两边,左边是初始分子的化学式,右边为产物分子的化学式。等式两边由 -> 分隔,在左边或者右边的不同分子用+分隔。分子是由原子构成,如果一个分子具有多个相同原子,则该原子的出现次数写在公式中的原子之后。例如,AC4B,表示该分子具有一个原子 A、4 个原子 C 和一个原子 B。

若在方程的一侧,一个分子不止出现一次,那么这个出现的次数写在该分子式的前面,例如:3AC4B 表示 3 个 AC4B 分子,总共有 3 个原子 A、12 个原子 C 和 3 个原子 B。

如果化学方程式的右侧和左侧原子每一种原子的数量相同,且左边原子的种类数与右边原子种类数相同,则称该化学方程式是平衡的。

你的任务是确定个化学方程式中的每一个化学方程式是否平衡。

输入

输入的第一行给出一个整数一表示有 n 个化学方程式。

接下来行。每一行给出一个字符串 S 一表示一个化学方程式,注意,原子均为大写英文字母组成,分子由原子和数字组成。

1n101≤n≤10

S1000S≤1000

题目保证单个化学方程式中元素的总个数在 int 范围之内。

题目保证每一个分子前面的数字是个位数,不保证其他数字是个位数

题目保证每个字母都是大写。

输出

输出行,对于每一个化学方程式,若平衡输出 YES,否则输出 NO。

样例

7
A+B->AB
2AB+2AC+2BC->4ABC
2AB+A->3AB
2H2O+2CO2->2H2CO3
H2SO4->H2O4
NH3+H2SO4->NH4SO4
CH4+2O2->CO2+2H2O
YES
YES
NO
YES
NO
NO
YES