Dünya liderleri bir araya geldi ve nihayet küresel ekonomik sorunları çözmenin en iyi (ve tek) yolunun birbirlerine ne kadar borçlu olduklarının hisse senedini almak ve birbirlerine büyük çeklerle ödeme yapmak olduğunu kabul ettiler. Bunu yapmanın en iyi yolunu bulmanız için sizi (mümkün olan en düşük sözleşme oranında) ironik olarak kiraladılar.
Çok fazla müzakere sonrasında ve birinden basit bir örnek çizmesini istemek için, aşağıdaki spesifikasyonlarla karşılaştılar.
Her ülke ISO 3166-1 alfa-2 koduyla temsil edilir : US
ABD AU
için, Avustralya JP
için, Japonya CN
için, Çin için ve diğerleri ...
- Bir defter, bir dizi ülke girişi ve her bir ülkeye ait tutarlar olarak düzenlenir.
- Her ülkenin girişi, etki alanı kimliği ile bir kolon ve ne kadar fazla / açık (milyarlarca Avro cinsinden), ardından bir noktalı virgül, daha sonra ülkelerin virgülle ayrılmış bir listesi ve ne kadarı (milyarlarca) Euro) borçlular.
- Bir ülke başka bir ülkeye hiçbir şey borçlu değilse, bu noktalı virgül ayırıcısından sonra o ülkeden söz edilmez.
- Açıklar negatif sayılarla, fazlalık pozitif sayılarla gösterilir.
- Değerler ayrıca yüzer olabilir.
- Defter STDIN'den alınmalıdır. Defterin sonu, boş bir satırda satır başı ile gösterilir. Tally STDOUT'a teslim edilmelidir.
Bir defter örneğ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
Sistem daha sonra her ülkenin ne kadar borçlu olduğunu ve borçlu olduğunu hesaplar ve örneğin AU için fazla / açıklarını belirler:
AU = 8 (mevcut artı) -10 (ABD'den) -15 (CN'den) -3 (JP'den) +12 (ABD'den) +8 (CN'den) +6 (JP'den) = 6
Tüm hesaplamalar tamamlandığında, bir taksitli gösterilmelidir:
Output:
AU:6
US:-5
CN:35
JP:8
İşiniz bu sistemi oluşturmak, herhangi bir sayıda ülke için herhangi bir sayıda defter girişi alabilen ve her ülkenin her şey ödendiğinde ne kadar açık / fazla alabileceğini belirleyebilmek.
Nihai test, aşağıdaki test durumunda aşağıdaki ülkeler arasında borcunu çözmek için kodunuzu kullanmanız içindir. Bu rakamlar Haziran 2011'den itibaren BBC News'den alınmıştır. ( Http://www.bbc.com/news/business-15748696 )
Alıştırma için, kendi GSYH'lerini mevcut fazlası olarak kullandım ... Lütfen bunun kesinlikle kod kalite güvencesinde bir alıştırma olduğunu aklınızda bulundurun ... Bu soruda burada küresel ekonomik karardan söz edilmeyecek. ... Ekonomi hakkında konuşmak istiyorsanız, SE’de bunu yöneten başka bir alt etki alanı olduğundan eminim.
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
Şimdi, dünyanın ekonomik kurtarıcısı ol!
Kurallar:
- En kısa kod kazanır ... sonuçta kod golf budur ...
- Lütfen ana sınavın çıktısını kod yanıtınızla birlikte verin ...
JP:4100
mı?