Lançando uma quantidade de <N> dardos Encontre todas as combinações possíveis para alcançar uma pontuação-alvo

Você recebe um alvo de dardos dividido em seções; cada seção tem uma pontuação única. Isso significa que não haverá duas seções com a mesma pontuação.

alt text

Lançando uma determinada quantidade de dardos válidos, encontre quantas soluções existem para alcançar a pontuação-alvo. Sua função receberá três parâmetros...

  • Seções: Uma lista de valores para as seções (por exemplo, [3, 6, 8, 11, 15, 19, 22], a lista já está ordenada).

  • Dardos: A quantidade de dardos a lançar.

  • Alvo: A pontuação-alvo.

Retorne uma lista vazia se nenhuma solução for encontrada; caso contrário, uma lista de strings não duplicadas para cada solução (por exemplo, ["3-11-18", "7-7-18", "7-11-14"]).

Exemplos

Se houver valores duplicados, mantenha apenas aquele ordenado do menor para o maior.

"8-19-8"

"8-8-19" <-- This is the one you would keep.

"19-8-8"

As várias soluções devem ser ordenadas antes de serem retornadas.

["3-11-18", "7-7-18", "7-11-14"] is ok.

["7-11-14", "7-7-18", "3-11-18"] is not ok.

Observações

  • Vários dardos podem cair na mesma seção.
  • Um dardo deve cair em uma seção válida (não pode errar).