Los líderes del mundo se han reunido y finalmente han admitido que la mejor (y única) forma de resolver los problemas económicos mundiales es hacer un balance de cuánto se deben unos a otros y simplemente pagarse unos a otros con grandes cheques. Lo han contratado (irónicamente, a la tasa de contrato más baja posible) para encontrar la mejor manera de hacerlo.
Después de mucha deliberación y de pedirle a alguien que dibuje un ejemplo simple, se le ocurrió la siguiente especificación.
Cada país está representado por su código ISO 3166-1 alpha-2 : US
para EE. UU., AU
Australia, JP
Japón, CN
China, etc.
- Un libro mayor se elabora como una serie de entradas de país y los montos adeudados a cada país.
- La entrada de cada país comienza con su ID de dominio, dos puntos, y cuánto tienen en superávit / déficit (en miles de millones de euros), seguido de un punto y coma, luego una lista de países separados por comas y cuánto (en miles de millones de Euro) que deben.
- Si un país no le debe nada a otro país, no se menciona ese país después de ese separador de punto y coma.
- Los déficits se indican como números negativos, el excedente se indica como un número positivo.
- Los valores también pueden ser flotantes.
- El libro mayor debe tomarse de STDIN. El final del libro mayor se indica mediante un retorno de carro en una línea en blanco. La cuenta debe ser entregada a STDOUT.
Un ejemplo de un libro mayor:
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
Luego, el sistema calcula cuánto debe y debe cada país y determina su superávit / déficit, por ejemplo, para AU:
AU = 8 (excedente actual) -10 (a EE. UU.) -15 (a CN) -3 (a JP) +12 (de EE. UU.) +8 (de CN) +6 (de JP) = 6
Cuando se realiza toda la computación, se debe mostrar una cuenta:
Output:
AU:6
US:-5
CN:35
JP:8
Su trabajo es crear este sistema, capaz de tomar cualquier cantidad de entradas en el libro mayor para cualquier número de países y capaz de determinar cuánto tiene déficit / superávit cada país cuando todo se paga.
La prueba definitiva es que use su código para resolver la deuda contraída entre los siguientes países en el siguiente caso de prueba. Estas cifras fueron tomadas de BBC News a partir de junio de 2011. ( http://www.bbc.com/news/business-15748696 )
Para los fines del ejercicio, he usado su PIB respectivo como su excedente actual ... Tenga en cuenta que este es estrictamente un ejercicio de garantía de calidad del código ... no se hablará de resolución económica global aquí en esta pregunta ... Si quieres hablar de economía, estoy seguro de que hay otro subdominio en SE que lo maneja ...
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
¡Ahora, sé el salvador económico del mundo!
Reglas:
- El código más corto gana ... este es el código golf después de todo ...
- Proporcione su salida del caso de prueba principal con su respuesta de código ...
JP:4100
?