Les dirigeants du monde se sont rencontrés et ont finalement admis que le meilleur (et le seul) moyen de résoudre les problèmes économiques mondiaux est de faire le bilan de ce qu'ils se doivent et de se payer les uns les autres avec d'énormes chèques. Ils vous ont engagé (ironiquement, au taux contractuel le plus bas possible) pour trouver les meilleurs moyens de le faire.
Après de longues délibérations et après avoir demandé à quelqu'un de dessiner un exemple simple, il a proposé la spécification suivante.
Chaque pays est représenté par son code ISO 3166-1 alpha-2 : US
pour les USA, AU
pour l'Australie, JP
pour le Japon, CN
pour la Chine ...
- Un grand livre est constitué d'une série d'écritures par pays et des montants dus à chaque pays.
- L'entrée de chaque pays commence par leur identifiant de domaine un colon, et combien ils ont en excédent / déficit (en milliards d'euros), suivi d'un point-virgule, puis d'une liste de pays séparés par des virgules et combien (en milliards de Euro) qu'ils doivent.
- Si un pays ne doit rien à un autre pays, aucune mention de ce pays n'est inscrite après ce séparateur point-virgule.
- Les déficits sont indiqués comme des nombres négatifs, l'excédent est indiqué comme un nombre positif.
- Les valeurs peuvent également être des flottants.
- Le grand livre doit être extrait de STDIN. La fin du grand livre est indiquée par un retour chariot sur une ligne vierge. Le décompte doit être remis à STDOUT.
Un exemple de grand livre:
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
Le système détermine ensuite le montant que chaque pays doit et doit et détermine leur excédent / déficit, par exemple pour l'UA:
AU = 8 (excédent courant) -10 (vers US) -15 (vers CN) -3 (vers JP) +12 (depuis US) +8 (depuis CN) +6 (depuis JP) = 6
Lorsque tout le calcul est terminé, un décompte doit être affiché:
Output:
AU:6
US:-5
CN:35
JP:8
Votre travail consiste à créer ce système, capable de prendre n'importe quel nombre d'entrées de grand livre pour n'importe quel nombre de pays et capable de déterminer combien chaque pays a un déficit / excédent lorsque tout est payé.
Le test ultime consiste à utiliser votre code pour résoudre la dette due entre les pays suivants dans le cas de test ci-dessous. Ces chiffres ont été extraits de BBC News en juin 2011. ( http://www.bbc.com/news/business-15748696 )
Aux fins de l'exercice, j'ai utilisé leur PIB respectif comme excédent actuel ... Veuillez garder à l'esprit qu'il s'agit strictement d'un exercice d'assurance de la qualité du code ... il ne sera pas question ici de résolution économique mondiale dans cette question ... Si vous voulez parler d'économie, je suis sûr qu'il y a un autre sous-domaine en SE qui le gère ...
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
Maintenant, soyez le sauveur économique du monde!
Règles:
- Le code le plus court gagne ... c'est le code-golf après tout ...
- Veuillez fournir votre sortie du cas de test principal avec votre réponse de code ...
JP:4100
?