Desafio Tomado com permissão do meu Concurso de Desafio de Código da Universidade
Depois de terminar seus estudos há alguns meses, Marie abriu uma conta bancária para começar a receber o pagamento de seu primeiro emprego na cidade. Desde então, ela vem realizando algumas transações com ele. Seu primeiro pagamento foi de US $ 1000. Com esse dinheiro, ela pagou por um jantar no qual convidou seus pais (o jantar custou US $ 150 dólares); depois, fez uma compra em um supermercado conhecido (US $ 80 dólares) e uma reserva de hotel para suas férias (US $ 200). No final do mês, ela recebeu seu pagamento novamente (1040 dólares, um pouco mais que o mês anterior) e no dia seguinte ela gastou outros 70 dólares no supermercado.
Hoje, ela percebeu que se depois de pagar os primeiros US $ 80 no supermercado uma segunda conta tivesse sido criada e a primeira congelada, as duas contas teriam exatamente o mesmo saldo:
O evento foi tão raro para ela que ela deseja continuar verificando se os movimentos de sua conta e os de seus amigos também têm esse recurso ou não.
Desafio
Dada uma lista de transações, produza o número de instantes de tempo em que o proprietário da conta bancária poderia ter criado uma segunda conta para que ambos tivessem o mesmo saldo final.
Exemplo: [1000, -150, -80, -200, 1040, -70]
Caso de teste
- Entrada:
1000 -150 -80 -200 1040 -70Saída:1 - Entrada:
100 -100Saída:2 - Entrada:
1 2 3Saída:1 - Entrada:
10 -20 15Saída:0 - Entrada:
15 -15 15 -15Saída:3 - Entrada:
1Saída:0
Notas
- Você pode assumir que não haverá transações de US $ 0
- Você pode receber sugestões de qualquer maneira razoável