Para pemimpin dunia telah bertemu dan akhirnya mengakui bahwa cara terbaik (dan satu-satunya) untuk menyelesaikan kesengsaraan ekonomi global adalah dengan menghitung berapa banyak mereka berutang satu sama lain dan hanya membayar satu sama lain dengan cek besar. Mereka telah mempekerjakan Anda (ironisnya, dengan tarif kontrak serendah mungkin) untuk mencari cara terbaik untuk melakukannya.
Setelah banyak pertimbangan, dan meminta seseorang untuk menggambar contoh sederhana, mereka telah datang dengan spesifikasi berikut.
Setiap negara diwakili oleh kode ISO 3166-1 alpha-2 mereka : US
untuk AS, AU
untuk Australia, JP
untuk Jepang, CN
untuk Cina dan seterusnya ...
- Buku besar disusun sebagai serangkaian entri negara dan jumlah yang terutang ke masing-masing negara.
- Entri masing-masing negara dimulai dengan ID domain mereka titik dua, dan berapa banyak yang mereka miliki dalam surplus / defisit (dalam miliaran Euro), diikuti oleh tanda titik koma, kemudian daftar negara-negara yang dipisahkan koma, dan berapa banyak (dalam miliaran dolar AS) Euro) mereka berutang.
- Jika suatu negara tidak berutang apa pun kepada negara lain, tidak disebutkan negara itu dimasukkan setelah pemisah titik koma itu.
- Defisit diindikasikan sebagai angka negatif, surplus diindikasikan sebagai angka positif.
- Nilai juga bisa mengapung.
- Buku besar harus diambil dari STDIN. Ujung buku besar ditandai dengan carriage return pada baris kosong. Penghitungan harus dikirim ke STDOUT.
Contoh buku besar:
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
Sistem kemudian menghitung berapa banyak masing-masing negara berutang dan berutang serta menentukan surplus / defisit mereka, misalnya, untuk AU:
AU = 8 (surplus saat ini) -10 (ke AS) -15 (ke CN) -3 (ke JP) +12 (dari AS) +8 (dari CN) +6 (dari JP) = 6
Ketika semua komputasi dilakukan, penghitungan harus ditunjukkan:
Output:
AU:6
US:-5
CN:35
JP:8
Tugas Anda adalah menciptakan sistem ini, yang mampu mengambil sejumlah entri buku besar untuk sejumlah negara dan mampu menentukan seberapa banyak masing-masing negara memiliki defisit / surplus ketika semuanya dibayarkan.
Tes akhir adalah bagi Anda untuk menggunakan kode Anda untuk menyelesaikan utang yang terhutang antara negara-negara berikut dalam kasus uji di bawah ini. Angka-angka ini diambil dari BBC News pada Juni 2011. ( http://www.bbc.com/news/business-15748696 )
Untuk keperluan latihan ini, saya telah menggunakan PDB masing-masing sebagai surplus saat ini ... Harap diingat bahwa ini hanyalah latihan dalam penjaminan kualitas kode ... tidak akan ada pembicaraan mengenai resolusi ekonomi global di sini dalam pertanyaan ini ... Jika Anda ingin berbicara ekonomi, saya yakin ada subdomain lain di SE yang menanganinya ...
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
Sekarang, jadilah penyelamat ekonomi dunia!
Aturan:
- Kode terpendek menang ... ini golf kode ...
- Harap berikan hasil uji kasus utama Anda dengan jawaban kode Anda ...
JP:4100
?