Considere uma matriz Ade 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 Asã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 Sfornecidas em ordem classificada, contendo apenas números inteiros positivos e um comprimento de matriz n, sua tarefa é gerar pelo menos uma matriz Xcomo essa f(X) = S.
Por exemplo, se S = {1,2,3,5,6}e, em n = 3seguida, uma saída válida é X = (1,2,3).
Se não houver essa matriz, Xseu 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 naté 15, mas você não precisa provar que seria rápido o suficiente para todas as entradas.