Лідери світу зустрілися і, нарешті, визнали, що найкращий (і єдиний) спосіб вирішення глобальних економічних негараздів - це підвести підсумки, скільки вони зобов’язані один одному і просто погасити один одного величезними чеками. Вони найняли вас (за іронією долі, за найнижчою можливою ставкою контракту), щоб розробити найкращі засоби для цього.
Після багато роздумів і попросивши когось зробити простий приклад, вони придумали наступні характеристики.
Кожна країна представлена своїм кодом ISO 3166-1 альфа-2 : US
для США, AU
Австралії, JP
Японії, CN
Китаю тощо.
- Ведення книги складається у вигляді ряду записів країн та сум, що належать кожній країні.
- Запис кожної країни починається з ідентифікатора домену двокрапкою та скільки у них надлишку / дефіциту (у мільярдах євро), після чого крапкою з комою, потім списком країн, розділених колонами, і скільки (у мільярдах Євро) вони зобов'язані.
- Якщо країна нічого не зобов’язана іншій країні, після цього роздільника крапки з комою не згадується жодна згадка про цю країну.
- Дефіцит позначається як від’ємні числа, надлишок - як додатне число.
- Значення також можуть бути поплавцями.
- Головну книгу потрібно взяти у 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
Ваше завдання полягає в створенні цієї системи, здатної приймати будь-яку кількість записів у головній книзі для будь-якої кількості країн і здатної визначити, скільки у кожної країни дефіцит / надлишок, коли все виплачується.
Кінцевим тестом є використання коду для вирішення боргу між наступними країнами у наведеному нижче тестовому випадку. Ці дані були взяті з BBC News станом на червень 2011 р. ( Http://www.bbc.com/news/business-15748696 )
Для цілей навчання я використовував відповідний ВВП як їх поточний надлишок ... Будь ласка, майте на увазі, що це суто вправа із забезпечення якості коду ... тут у цьому питанні не буде розмови про глобальну економічну вирішення. ... Якщо ви хочете поговорити про економіку, я впевнений, що в 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
?