世界各国领导人开会并最终承认,解决全球经济困境的最佳方法(也是唯一的方法)是盘算彼此的欠款,并以巨额支票相互偿还。他们雇用了您(具有讽刺意味的是,以最低的合同价格聘请您)来找到这样做的最佳方法。
经过深思熟虑,并要求某人绘制一个简单的示例,他们提出了以下规范。
每个国家/地区均以其ISO 3166-1 alpha-2代码表示:US
美国,AU
澳大利亚,JP
日本,CN
中国等等。
- 将分类帐作为一系列国家分录和每个国家的欠款进行草拟。
- 每个国家/地区的条目均以其域ID开始,即冒号,其盈余/赤字有多少(十亿欧元),然后是分号,然后是逗号分隔的国家/地区列表,以及有多少(十亿欧元)欧元)。
- 如果一个国家不欠另一个国家,则在该分号分隔符之后不输入该国家的任何提述。
- 赤字表示为负数,盈余表示为正数。
- 值也可以是浮点数。
- 分类帐必须来自STDIN。分类帐的结尾由空白行上的回车符指示。提示必须传送到STDOUT。
分类帐的示例:
Input:
AU:8;US:10,CN:15,JP:3
US:14;AU:12,CN:27,JP:14
CN:12;AU:8,US:17,JP:4
JP:10;AU:6,US:7,CN:10
然后,系统计算出每个国家的欠款和欠款,并确定其盈余/赤字,例如对于非盟:
AU = 8(当前盈余)-10(至美国)-15(至CN)-3(至JP)+12(来自美国)+8(来自CN)+6(来自JP)= 6
完成所有计算后,必须显示一个提示:
Output:
AU:6
US:-5
CN:35
JP:8
您的工作就是创建一个系统,该系统能够为任何数量的国家采用任何数量的分类帐分录,并能够确定在支付所有费用后每个国家有多少赤字/盈余。
最终测试是让您使用代码来解决以下测试案例中以下国家之间的债务。这些数字取自2011年6月的BBC新闻。(http://www.bbc.com/news/business-15748696)
出于练习的目的,我将其各自的GDP用作其当前的盈余...请记住,这严格是代码质量保证的一项练习...在此问题中,将不讨论全球经济解决方案...如果您想谈论经济学,我敢肯定SE中还有另一个子域可以处理它...
US:10800;FR:440.2,ES:170.5,JP:835.2,DE:414.5,UK:834.5
FR:1800;IT:37.6,JP:79.8,DE:123.5,UK:227,US:202.1
ES:700;PT:19.7,IT:22.3,JP:20,DE:131.7,UK:74.9,US:49.6,FR:112
PT:200;IT:2.9,DE:26.6,UK:18.9,US:3.9,FR:19.1,ES:65.7
IT:1200;JP:32.8,DE:120,UK:54.7,US:34.8,FR:309,ES:29.5
IE:200;JP:15.4,DE:82,UK:104.5,US:39.8,FR:23.8
GR:200;DE:15.9,UK:9.4,US:6.2,FR:41.4,PT:7.5,IT:2.8
JP:4100;DE:42.5,UK:101.8,US:244.8,FR:107.7
DE:2400;UK:141.1,US:174.4,FR:205.8,IT:202.7,JP:108.3
UK:1700;US:578.6,FR:209.9,ES:316.6,IE:113.5,JP:122.7,DE:379.3
现在,成为世界的经济救星!
规则:
- 最短的代码胜出...这毕竟是代码高尔夫...
- 请提供主要测试用例的输出以及代码答案...
JP:4100
吗?