Os líderes do mundo se encontraram e finalmente admitiram que a melhor (e única) maneira de resolver os problemas econômicos globais é fazer um balanço do quanto eles devem um ao outro e pagar um ao outro com cheques enormes. Eles o contrataram (ironicamente, com a menor taxa de contrato possível) para descobrir os melhores meios de fazê-lo.
Depois de muita deliberação, e pedindo a alguém para desenhar um exemplo simples, eles apresentaram as seguintes especificações.
Cada país é representado pelo código ISO 3166-1 alfa-2 : US
nos EUA, AU
na Austrália, JP
no Japão, CN
na China e assim por diante ...
- Um razão é elaborado como uma série de entradas de países e os valores devidos a cada país.
- A entrada de cada país começa com seu ID de domínio em dois pontos e quanto eles têm excedente / déficit (em bilhões de euros), seguidos por ponto e vírgula, depois uma lista dos países separados por vírgula e quanto (em bilhões de Euro) eles devem.
- Se um país não deve nada a outro país, nenhuma menção a esse país é inserida após esse separador de ponto e vírgula.
- Os déficits são indicados como números negativos, o excedente é indicado como um número positivo.
- Os valores também podem ser flutuadores.
- O razão deve ser retirado do STDIN. O final do razão é indicado por um retorno de carro em uma linha em branco. A contagem deve ser entregue à STDOUT.
Um exemplo de um razão:
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
O sistema então calcula quanto cada país deve e deve e determina seu superávit / déficit, por exemplo, para a UA:
AU = 8 (superávit atual) -10 (para EUA) -15 (para CN) -3 (para JP) +12 (dos EUA) +8 (da CN) +6 (da JP) = 6
Quando toda a computação estiver concluída, uma contagem deve ser mostrada:
Output:
AU:6
US:-5
CN:35
JP:8
Seu trabalho é criar esse sistema, capaz de receber qualquer número de entradas do razão para qualquer número de países e capaz de determinar quanto cada país tem déficit / superávit quando tudo é pago.
O teste final é para você usar seu código para resolver a dívida entre os seguintes países no caso de teste abaixo. Esses números foram retirados da BBC News em junho de 2011. ( http://www.bbc.com/news/business-15748696 )
Para os fins do exercício, usei o respectivo PIB como excedente atual ... Lembre-se de que este é estritamente um exercício de garantia de qualidade do código ... não se fala em resolução econômica global aqui nesta pergunta ... Se você quer falar sobre economia, tenho certeza de que existe outro subdomínio no SE que lida com isso ...
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
Agora, seja o salvador econômico do mundo!
Regras:
- O menor código vence ... afinal de contas, este é o código-golfe ...
- Forneça sua saída do principal caso de teste com sua resposta de código ...
JP:4100
?