Livraria

Livraria

Difícil

Instruções

Para tentar incentivar mais vendas de livros diferentes de uma popular série de 5 livros, uma livraria decidiu oferecer descontos na compra de vários livros.

Um exemplar de qualquer um dos cinco livros custa $8.

Se, no entanto, comprares dois livros diferentes, recebes um desconto de 5% nesses dois livros.

Se comprares 3 livros diferentes, recebes um desconto de 10%.

Se comprares 4 livros diferentes, recebes um desconto de 20%.

Se comprares os 5, recebes um desconto de 25%.

Repara que, se comprares quatro livros, dos quais 3 são títulos diferentes, recebes um desconto de 10% nos 3 que fazem parte de um conjunto, mas o quarto livro continua a custar $8.

A tua missão é escrever código que calcule o preço de qualquer cesto de compras imaginável (que contenha apenas livros da mesma série), dando o maior desconto possível.

Por exemplo, quanto custa este cesto de livros?

  • 2 exemplares do primeiro livro
  • 2 exemplares do segundo livro
  • 2 exemplares do terceiro livro
  • 1 exemplar do quarto livro
  • 1 exemplar do quinto livro

Uma forma de agrupar estes 8 livros é:

  • 1 grupo de 5 (1.º, 2.º, 3.º, 4.º, 5.º)
  • 1 grupo de 3 (1.º, 2.º, 3.º)

Isto daria um total de:

  • 5 livros com um desconto de 25%
  • 3 livros com um desconto de 10%

O que resulta em:

  • 5 × (100% - 25%) × $8 = 5 × $6.00 = $30.00, mais
  • 3 × (100% - 10%) × $8 = 3 × $7.20 = $21.60

O que dá $51.60.

No entanto, há outra forma de agrupar estes 8 livros:

  • 1 grupo de 4 livros (1.º, 2.º, 3.º, 4.º)
  • 1 grupo de 4 livros (1.º, 2.º, 3.º, 5.º)

Isto daria um total de:

  • 4 livros com um desconto de 20%
  • 4 livros com um desconto de 20%

O que resulta em:

  • 4 × (100% - 20%) × $8 = 4 × $6.40 = $25.60, mais
  • 4 × (100% - 20%) × $8 = 4 × $6.40 = $25.60

O que dá $51.20.

E $51.20 é o preço com o maior desconto.

Editar via GitHub A ligação abre numa nova janela ou separador
ARM64 Assembly Exercism

Estás pronto para começar Livraria?

Inscreve-te no Exercism para aprenderes e dominares ARM64 Assembly com 78 exercícios, e mentoria humana real, tudo grátis.