Considere uma matriz A
de comprimento n
. A matriz contém apenas números inteiros positivos. Por exemplo A = (1,1,2,2)
. Vamos definir f(A)
como o conjunto de somas de todos os sub-arranjos contíguos não vazios de A
. Nesse caso f(A) = {1,2,3,4,5,6}
. As etapas a f(A)
serem produzidas são as seguintes:
Os sub-arranjos de A
são (1), (1), (2), (2), (1,1), (1,2), (2,2), (1,1,2), (1,2,2), (1,1,2,2)
. Suas respectivas somas são 1,1,2,2,2,3,4,4,5,6
. O conjunto que você obtém dessa lista é, portanto {1,2,3,4,5,6}
.
Tarefa
Dado um conjunto de somas S
fornecidas em ordem classificada, contendo apenas números inteiros positivos e um comprimento de matriz n
, sua tarefa é gerar pelo menos uma matriz X
como essa f(X) = S
.
Por exemplo, se S = {1,2,3,5,6}
e, em n = 3
seguida, uma saída válida é X = (1,2,3)
.
Se não houver essa matriz, X
seu código deve gerar qualquer valor constante.
Exemplos
Entrada n=4, S = (1, 3, 4, 5, 6, 8, 9, 10, 13)
:, saída possível:X = (3, 5, 1, 4)
Entrada n=6, S = (2, 3, 4, 5, 7, 8, 9, 10, 12, 14, 17, 22)
:, saída possível:X = (5, 3, 2, 2, 5, 5)
Entrada n=6, S = (2, 4, 6, 8, 10, 12, 16)
:, saída possível:X = (4, 2, 2, 2, 2, 4)
Entrada n=6, S = (1, 2, 3, 4, 6, 7, 8, 10, 14)
:, saída possível:X = (4, 2, 1, 1, 2, 4)
Entrada: n=10, S = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 23, 24, 25)
, possível saída: X = (1, 1, 3, 1, 2, 1, 2, 5, 4, 5)
.
Entrada: n=15, S = (1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31)
, possível saída: X = (1, 2, 1, 3, 3, 1, 3, 3, 1, 3, 3, 1, 2, 1, 3)
.
Formato de entrada e saída
Seu código pode receber e fornecer resultados em qualquer formato de leitura facilmente humano que você achar conveniente. No entanto, mostre a saída do teste nos exemplos da pergunta.
Tempo de execução
Você deve poder executar o código até a conclusão para todos os exemplos na pergunta. Ele deve, em princípio, ser correto para n
até 15
, mas você não precisa provar que seria rápido o suficiente para todas as entradas.