U543186 九鸟学化学之配平
题目背景
由于鸠很好奇日蚀节烟花绽放的原理,所以——鸠要开始学化学啦!
题目描述
很快,鸠学到了化学方程式的配平。然而,鸠很懒,她不想自己思考,而是想要用高级的方式(指c++)去解决这个问题。
一个化学方程式,若方程的两边所有化学式中的元素在两侧化学式中的数量相等,那么称这个化学方程式是被配平好的;反之,称这个化学方程式是没有被配平好的。
如:下行的这个化学方程式是没有被配平好的:
> $H_2O\to H_2+O_2$
下行的这个化学方程式是上行化学式经过配平后的:
> $2H_2O\to 2H_2+O_2$
当然,有的时候鸠也会异想天开,写一些现实中不存在,同时也无法配平的化学方程式,如下行:
> $C+O_2\to Au+CO$
这就属于点石成金的玄学范畴了。这种情况输出 `-1` 即可。
(实在看不懂就先去学学)
现在,鸠把这个问题交给了你。
这道题中,化学式中原子或原子团的下角标将会直接以一个数字的形式位于原子或原子团后,若化学式中某一原子团数量 $ \geq 2$ , 那么原子团将会用小括号括起来。
标准表示的化学式有:`H2O` , `CaCO3` , `NaOH` , `Ca(OH)2` 等。保证化学式中的所有元素第一个字母为大写字母,若有第二个或更多的字母,则一定为小写字母。
输入格式
第一行包括一个数字 $n$,表示方程的左侧化学式种类的数量。
第二行至第 $n+1$ 行,共 $n$ 行,每行一个字符串,表示一个方程左侧的化学式 $c_i$ 。
第 $n+2$ 行包括一个数字 $m$,表示方程的右侧化学式种类的数量。
第 $n+3$ 行至第 $n+m+2$ 行,共 $m$ 行,每行一个字符串,表示一个方程右侧的化学式 $d_i$ 。
输出格式
若化学方程式可以被配平,那么共输出 $2$ 行。
第一行 $n$ 个整数,每个整数 $a_i$ 表示 $c_i$ 在化学方程式配平后的数量。整数与整数之间用空格隔开。
第二行 $m$ 个整数,每个整数 $b_i$ 表示 $d_i$ 在化学方程式配平后的数量。整数与整数之间用空格隔开。
否则,输出 `-1` 。
说明/提示
数据范围待定。