世界の指導者たちは会い、ついに世界的な経済的苦難を解決する最善の(そして唯一の)方法は、彼らがお互いに借りている額を評価し、巨大な小切手でお互いに返済することであると認めました。彼らは、(皮肉なことに、可能な限り低い契約率で)あなたを雇い、そうするための最良の手段を考え出しました。
多くの検討を重ね、簡単な例を描くように頼んだ後、次の仕様を思いつきました。
それぞれの国は、ISO 3166-1 alpha-2コードで表されます。US
米国、AU
オーストラリア、JP
日本、CN
中国など...
- 元帳は、一連の国エントリと各国への支払い額として作成されます。
- 各国のエントリは、ドメインIDコロンから始まり、余剰/不足の量(10億ユーロ)、その後にセミコロン、コロンで区切られた国のコンマ区切りのリスト、および量(10億単位)ユーロ)彼らは借りている。
- 国が他の国に何も負わない場合、その国の言及はそのセミコロン区切りの後に入力されません。
- 赤字は負の数で示され、余剰は正の数で示されます。
- 値はフロートにすることもできます。
- 元帳は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の場合の黒字/赤字を決定します。
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
か?