408827: GYM103336 B Festival de Presentes

Memory Limit:256 MB Time Limit:1 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

B. Festival de Presentestime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard output

Aproximando-se do ano novo, uns grupos de amigos resolvem fazer o tradicional festival de presentes. Considerando um grupo de amigos que vão dar presentes entre si, queremos determinar quanto cada amigo ganhou (ou perdeu) considerando o valor que ele deu de presente pra seus amigos (dividindo igualmente) e o quanto ele recebeu de seus amigos. Porém, nesses grupos de amigos, algumas pessoas vão ter mais conhecidos que outras. Dado um grupo de amigos, o dinheiro que cada pessoa do grupo vai usar pra presentear e dividir igualmente entre os amigos que ela escolheu presentear, crie o programa que responde quanto cada pessoa do grupo ganhou (ou perdeu).

Este problema envolve determinar, para um grupo de amigos que se dão presentes, quanto cada pessoa dá a mais do que recebe (e vice-versa para aqueles que vêem dar presentes com cinismo). Neste problema, cada pessoa reserva algum dinheiro para dar presentes e divide esse dinheiro igualmente entre todos aqueles a quem são dados presentes. No entanto, em qualquer grupo de amigos, algumas pessoas dão mais do que outras (ou pelo menos podem ter mais conhecidos) e algumas pessoas têm mais dinheiro do que outras. Dado um grupo de amigos, o dinheiro que cada pessoa do grupo gasta em presentes e uma (sub) lista de amigos a quem cada pessoa dá presentes; você deve escrever um programa que determina quanto mais (ou menos) cada pessoa no grupo dá do que recebe.

Input

A primeira linha de entrada será a quantidade de grupos a serem examinados. Logo, teremos uma sequência de grupos de amigos do festival de presentes. Cada grupo consiste de várias linhas:

  • Uma linha contendo o número de pessoas no grupo;
  • Uma nova linha com a lista dos nomes de cada pessoa do grupo;
  • Uma nova linha para cada pessoa no grupo consistindo de: nome da pessoa, a quantidade de dinheiro que essa pessoa usará pra presentear, o número de pessoas a quem os presentes são dados e os nomes das pessoas do grupo a quem os presentes são dados.
Todos os nomes são letras minúsculas, não há mais de 10 pessoas em um grupo e nenhum nome tem mais de 12 caracteres. O dinheiro é um número inteiro, não negativo e menor que 2.000. A entrada consiste em um ou mais grupos e termina no fim do arquivo.Output

Para cada grupo do festival de presentes, imprima, para cada pessoa do grupo, o nome da pessoa seguido pelo ganho (ou perda) recebido (ou gasto) por ela. Cada linha de pessoa deve ser impressa na mesma ordem em que aparecem pela primeira vez na entrada.

A saída de cada grupo deve ser separada de outros grupos por uma linha em branco. Todos os presentes são inteiros. Então, cada pessoa pegará o valor que ela reservou para os presentes e dividirá igualmente entre as pessoas destinadas, dando o máximo possível que não passe do valor definido. Qualquer dinheiro que sobre nessa divisão será mantido e irá fazer parte do "valor líquido" final impresso na saída dessa pessoa.

ExampleInput
2
5
andre clara gabriel vitoria matheus
andre 200 3 clara gabriel vitoria
gabriel 500 1 andre
matheus 150 2 vitoria gabriel
clara 0 2 matheus vitoria
vitoria 0 0
3
liz joao andre
liz 30 1 joao
joao 55 2 liz andre
andre 0 2 joao liz
Output
andre 302
clara 66
gabriel -359
vitoria 141
matheus -150

liz -3
joao -24
andre 27

加入题单

上一题 下一题 算法标签: