U97898 化学沙盘

题目背景

给定两种不同质量的酸、碱、金属或者盐,请求出将它们混合在一起时发生的情况。

题目描述

酸只可能是盐酸($HCl$)、硫酸($H_2SO_4$)中的一种。数据中给出的酸的质量表示酸溶液中溶质的质量。这两种酸都是稀酸。 碱只可能是氢氧化钠($NaOH$)、氢氧化钙($Ca(OH)_2$)、氢氧化钡($Ba(OH)_2$)、氢氧化钾($KOH$)、氢氧化铜($Cu(OH)_2$)、氢氧化铝($Al(OH)_3$)、氢氧化亚铁($Fe(OH)_2$)、氢氧化铁($Fe(OH)_2$)、氢氧化镁($Mg(OH)_2$)、氢氧化锌($Zn(OH)_2$)中的一种。数据中给出的碱的质量表示碱溶液中溶质的质量。这些碱都是稀碱。 金属只可能是铁($Fe$)、铜($Cu$)、银($Ag$)、镁($Mg$)、锌($Zn$)、铝($Al$)中的一种。 盐只可能是负(根)离子 $SO_4^{2-}$、$CO_3^{2-}$、$Cl^-$、$NO^{-}_{3}$ 中的一种,和正离子 $Na^+$、$Ba^{2+}$、$Zn^{2+}$、$Fe^{2+}$、$Fe^{3+}$、$Cu^{2+}$、$Ag^+$、$Al^{3+}$、$Ca^{2+}$ 中的一种匹配而成的结果。比如 $NaCl$,$CuSO_4$,$Al_2(SO_4)_3$ 等。数据中给出的盐的质量表示盐溶液中溶质的质量。 酸和碱一定会发生中和反应,产生对应的盐和水。 酸和活动性大于氢的金属($Fe$,$Mg$,$Zn$,$Al$)会发生置换反应,产生对应的盐和氢气。 酸和碳酸盐一定会发生复分解反应,产生对应的盐,水($H_2O$)和二氧化碳($CO_2$)。 酸和其它盐类可能会发生复分解反应,产生新盐和新酸,其条件是参与反应的盐可溶,且反应产生了不溶性的沉淀。 金属和盐溶液可能发生置换反应,产生新盐和新金属,其条件是金属的活动性大于盐溶液中正离子所对应金属的活动性。(金属活动性顺序表:$Mg>Al>Zn>Fe>Cu>Ag$)。 碱和盐可能会发生复分解反应,产生新碱和新盐,其条件是参与反应的盐和碱可溶,且反应产生了不溶性的沉淀。特别地,$Ca(OH)_2$ 在此处可以作为可溶性的碱。 盐和盐可能会发生复分解反应,产生两种新盐,其条件是参与反应的盐可溶,且反应产生了不溶性的沉淀。 我们假设水是足够多的,即可溶性或微溶性的物质可以无限溶,但不溶性的物质彻底不能溶。 题目中涉及的物质的溶解性: 含有 $K^+,Na^+,NO_3^-$ 根的盐均可溶。 含有 $Cl^-$ 根的盐除了 $AgCl$ 不溶外均可溶。 含有 $SO_4^{2-}$ 根的盐除了 $CaSO_4,Ag_2SO_4$ 微溶外均可溶。 含有 $CO_3^{2-}$ 根的盐除了 $K_2CO_3,Na_2CO_3$ 可溶,$MgCO_3$ 微溶外均不溶。 $Ca(OH)_2$ 微溶,$NaOH,KOH,Ba(OH)_2$ 可溶,其余的碱不溶。 特别地,不存在 $Al_2(CO_3)_3,Fe_2(CO_3)_3,AgOH$。 题目中涉及的元素的相对原子质量: $H-1,C-12,N-14,O-16,Na-23,Mg-24,Al-27,S-32$ $Cl-35.5,K-39,Ca-40,Fe-56,Zn-65,Ag-108,Ba-133$ 题目中的任何精度问题都以保留两位小数为准。 输入输出中化学式的书写以一般书写形式为准。 比如 $Na_2CO_3$ 写成 $\texttt{Na2CO3}$,$Ba(OH)_2$ 写成 $\texttt{Ba(OH)2}$。 我们假设反应在常温常压下完全充分进行。

输入格式

第一行一个字符串 $S$ 和一个实数 $D_1$,表示有质量为 $D_1$ 的 $S$ 物质。 第二行一个字符串 $T$ 和一个实数 $D_2$,表示有质量为 $D_2$ 的 $T$ 物质。

输出格式

你应当按照从上到下的顺序根据以下内容进行输出。 如果反应没有进行,则输出 $\texttt{No}$。 如果反应后反应物有过剩,则输出: $\texttt{Remain: \%s \%f}$ 其中 $\texttt{\%s}$ 表示过剩的物质名称,$\texttt{\%f}$ 表示该物质剩余的量。 如果反应生成了水,则输出: $\texttt{H2O: \%f}$ $\texttt{\%f}$ 表示反应生成水的质量。 如果反应生成了二氧化碳,则输出: $\texttt{CO2+: \%f}$ $\texttt{\%f}$ 表示反应生成水的质量。 反应生成的其它物质,你需要对每个物质输出一行,每行的格式为: $\texttt{\%s: \%f}$ 其中 $\texttt{%s}$ 表示该物质的名称,$\texttt{\%f}$ 表示该物质生成的量。 如果反应生成的物质是气体,那么在 $\texttt{\%s}$ 后加上符号 $\texttt{+}$。 如果反应生成的物质是沉淀,且反应物中没有不溶物,那么在 $\texttt{\%s}$ 后加上符号 $\texttt{-}$。 显然的,反应生成的物质中除去水和二氧化碳,至多有两种不同的其它物质。你应当优先输出气体,其次输出沉淀;如果两者都不是气体或沉淀,你应当优先输出化学式字典序靠前的物质。 输出中的所有数值保留两位小数。

说明/提示

对于样例 $1,2,3$: $$ Na_2CO_3+2HCl=2NaCl+CO_2\uparrow+H_2O $$ $1mol$ 的 $Na_2CO_3$ 和 $2mol$ 的 $HCl$ 反应将生成 $2mol$ 的 $NaCl$ 、 $1mol$ 的 $CO_2$ 和 $1mol$ 的 $H_2O$。 样例 $1$ 恰好给出了 $1mol$ 的的 $Na_2CO_3$ 和 $2mol$ 的 $HCl$,所以反应恰好完全进行。 样例 $2$ 给出了过量的 $HCl$,$HCl$ 最终有残余,但是生成物不会改变。 样例 $3$ 给出了过量的 $Na_2CO_3$,$Na_2CO_3$ 最终有残余,但是生成物不会改变。 对于样例 $4,5$: 两种物质不能发生反应。 对于其它样例,请自行理解。 对于 $10\%$ 的数据,保证两种物质分别是酸和碱。 对于另外 $30\%$ 的数据,保证其中一种物质是酸。 对于另外 $30\%$ 的数据,保证其中一种物质是碱。 对于 $100\%$ 的数据,满足物质的质量为小于 $10^5$ 的正实数。