#P2555. Drink, on Ice

Drink, on Ice

题目描述

一杯好喝的饮料总是需要加冰。然而,冰的用量是关键。如果冰太多,饮料会过冷,但这可能是一种欺骗,因为可以用更少的冰(比如多加些伏特加)。另一方面,如果冰太少,饮料会变暖,这是不可接受的。你需要帮助调酒师计算这种混合物的预期结果——当然不是帮忙调酒或喝酒,而是帮忙计算。

为了使问题简化,我们假设在一个封闭系统中将纯水与冰混合,即不受外界温度或瓶子升温等因素的影响。因此,经过一段时间后,系统可视为达到平衡状态(温度和冰水比例不再变化)。你的任务是计算这个平衡系统的最终温度,以及平衡状态下冰和水的量。

根据物理学知识,将一克水加热一开尔文需要 4.194.19 焦耳的能量,而冰则需要 2.092.09 焦耳。我们定义水的比热容 cw=4.19J/(g\cdotpK)c_w = 4.19 \, \text{J/(g·K)},冰的比热容 ci=2.09J/(g\cdotpK)c_i = 2.09 \, \text{J/(g·K)}。融化一克冰需要 335335 焦耳的能量,且温度保持在 00 摄氏度。我们定义融化潜热 em=335J/ge_m = 335 \, \text{J/g}。实验前冰和水的总热能等于最终混合物的热能。

下图展示了相对于 30-30 摄氏度的温度下,一克冰、冰水混合物或水的能量变化。在 00 摄氏度处的跃变表示冰融化成水的过程,所增加的能量与已融化的冰量成正比。

输入格式

输入包含多个测试用例。每个测试用例包含四个实数 mwm_wmim_itwt_wtit_i,分别表示水的质量(克)、冰的质量(克)、水的温度(摄氏度)和冰的温度(摄氏度)。水的质量和冰的质量均为非负数,且 mw+mi>0m_w + m_i > 0。温度满足 30<ti0tw<100-30 < t_i \leq 0 \leq t_w < 100。最后一个测试用例后跟四个零。

输出格式

对于每个测试用例,输出平衡状态下冰的质量(克)、水的质量(克)以及混合物的最终温度(摄氏度),所有数值四舍五入到一位小数。具体格式请参照样例输出。

输入样例 1

100 20 50 -10
100 22 0  0
100 35 25 -10.5
10  90 25 -28
0 0 0 0

输出样例 1

0.0 g of ice and 120.0 g of water at 27.5 C
22.0 g of ice and 100.0 g of water at 0.0 C
6.0 g of ice and 129.0 g of water at 0.0 C
100.0 g of ice and 0.0 g of water at -4.2 C

来源

乌尔姆20032003年地区赛(试题来源)