Các nhà lãnh đạo của thế giới đã gặp gỡ và cuối cùng đã thừa nhận rằng cách tốt nhất (và duy nhất) để giải quyết các tai ương kinh tế toàn cầu là lấy số tiền họ nợ nhau và trả cho nhau bằng những tấm séc lớn. Họ đã thuê bạn (trớ trêu thay, với tỷ lệ hợp đồng thấp nhất có thể) để tìm ra phương tiện tốt nhất để làm việc đó.
Sau nhiều lần cân nhắc và yêu cầu ai đó rút ra một ví dụ đơn giản, họ đã đưa ra thông số sau.
Mỗi quốc gia được đại diện bởi mã ISO 3166-1 alpha-2 của họ : US
cho Hoa Kỳ, AU
cho Úc, JP
cho Nhật Bản, CN
cho Trung Quốc, v.v.
- Một sổ cái được vẽ lên như một loạt các mục nhập quốc gia và số tiền nợ cho mỗi quốc gia.
- Mỗi mục nhập của mỗi quốc gia bắt đầu bằng ID miền của họ một dấu hai chấm và số tiền họ có thặng dư / thâm hụt (tính bằng tỷ Euro), theo sau là dấu chấm phẩy, sau đó là danh sách các quốc gia được phân tách bằng dấu phẩy và bao nhiêu (tính bằng tỷ Euro) họ nợ.
- Nếu một quốc gia không nợ gì một quốc gia khác, không có đề cập đến quốc gia đó được nhập sau dấu phân cách dấu chấm phẩy đó.
- Thâm hụt được chỉ định là số âm, thặng dư được chỉ định là số dương.
- Giá trị cũng có thể là phao.
- Sổ cái phải được lấy từ STDIN. Sự kết thúc của sổ cái được chỉ định bởi một sự trở lại vận chuyển trên một dòng trống. Các kiểm đếm phải được gửi đến STDOUT.
Một ví dụ về sổ cái:
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
Sau đó, hệ thống sẽ tính xem mỗi quốc gia nợ bao nhiêu và nợ và xác định thặng dư / thâm hụt của họ, ví dụ, đối với AU:
AU = 8 (thặng dư hiện tại) -10 (sang Mỹ) -15 (tới CN) -3 (đến JP) +12 (từ Mỹ) +8 (từ CN) +6 (từ JP) = 6
Khi tất cả các tính toán được thực hiện, một kiểm đếm phải được hiển thị:
Output:
AU:6
US:-5
CN:35
JP:8
Công việc của bạn là tạo ra hệ thống này, có khả năng lấy bất kỳ số lượng sổ cái nào cho bất kỳ số lượng quốc gia nào và có khả năng xác định mỗi quốc gia có bao nhiêu thâm hụt / thặng dư khi mọi thứ được thanh toán.
Bài kiểm tra cuối cùng là để bạn sử dụng mã của mình để giải quyết khoản nợ giữa các quốc gia sau đây trong trường hợp kiểm tra dưới đây. Những số liệu này được lấy từ BBC News vào tháng 6 năm 2011 ( http://www.bbc.com/news/business-15748696 )
Với mục đích của cuộc tập trận, tôi đã sử dụng GDP tương ứng của họ làm thặng dư hiện tại của họ ... Xin lưu ý rằng đây hoàn toàn là một bài tập về đảm bảo chất lượng mã ... sẽ không có thảo luận về giải pháp kinh tế toàn cầu ở đây trong câu hỏi này ... Nếu bạn muốn nói về kinh tế, tôi chắc chắn có một tên miền phụ khác trong SE xử lý nó ...
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
Bây giờ, hãy là vị cứu tinh kinh tế của thế giới!
Quy tắc:
- Mã ngắn nhất sẽ thắng ... đây là mã golf sau tất cả ...
- Vui lòng cung cấp đầu ra của trường hợp thử nghiệm chính với câu trả lời mã của bạn ...
JP:4100
?