Przywódcy świata spotkali się i ostatecznie przyznali, że najlepszym (i jedynym) sposobem rozwiązania globalnych problemów gospodarczych jest podsumowanie, ile są sobie winni i po prostu spłacenie się ogromnymi czekami. Zatrudnili cię (jak na ironię, przy najniższej możliwej stawce umownej), aby opracować najlepsze środki.
Po długich rozważaniach i poproszeniu kogoś o narysowanie prostego przykładu wymyślili następującą specyfikację.
Każdy kraj jest reprezentowany przez kod ISO 3166-1 alfa-2 : US
dla USA, AU
Australii, JP
Japonii, CN
Chin i tak dalej ...
- Księga jest sporządzana jako seria wpisów do kraju i kwot należnych dla każdego kraju.
- Wpis każdego kraju zaczyna się od identyfikatora domeny dwukropka i tego, ile mają nadwyżki / deficyty (w miliardach euro), a następnie średnika, a następnie rozdzielonej przecinkami listy krajów i ile (w miliardach Euro) są winni.
- Jeśli kraj nic nie jest winien innemu krajowi, po separatorze średników nie jest wprowadzana żadna wzmianka o tym kraju.
- Deficyty są wskazywane jako liczby ujemne, nadwyżka jest wskazywana jako liczba dodatnia.
- Wartości mogą być również zmiennoprzecinkowe.
- Księga musi być pobrana ze STDIN. Koniec księgi jest oznaczony znakiem powrotu karetki w pustej linii. Liczbę należy dostarczyć do STDOUT.
Przykład księgi:
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
Następnie system oblicza, ile każdy kraj jest winien i jest winien, i określa ich nadwyżkę / deficyt, na przykład dla AU:
AU = 8 (bieżąca nadwyżka) -10 (do USA) -15 (do CN) -3 (do JP) +12 (z USA) +8 (z CN) +6 (z JP) = 6
Po zakończeniu wszystkich obliczeń należy wyświetlić podsumowanie:
Output:
AU:6
US:-5
CN:35
JP:8
Twoim zadaniem jest stworzenie tego systemu, który będzie mógł przyjmować dowolną liczbę wpisów do księgi rachunkowej dla dowolnej liczby krajów i będzie w stanie określić, ile każdego kraju ma deficyt / nadwyżka, gdy wszystko zostanie wypłacone.
Ostatecznym testem jest skorzystanie z kodu w celu uregulowania długu między następującymi krajami w poniższym przypadku testowym. Dane te pochodzą z BBC News z czerwca 2011 r. ( Http://www.bbc.com/news/business-15748696 )
Do celów tego ćwiczenia wykorzystałem ich odpowiedni PKB jako ich bieżącą nadwyżkę ... Proszę pamiętać, że jest to ściśle ćwiczenie w zapewnianiu jakości kodu ... w tym pytaniu nie będzie mowy o globalnej rozdzielczości gospodarczej ... Jeśli chcesz rozmawiać o ekonomii, jestem pewien, że istnieje inna subdomena w SE, która to obsługuje ...
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
Teraz bądź ekonomicznym wybawcą świata!
Zasady:
- Wygrywa najkrótszy kod ... w końcu to jest golf golfowy ...
- Proszę podać wyniki głównego przypadku testowego wraz z odpowiedzią na kod ...
JP:4100
?