Considera una matrice Adi lunghezza n. La matrice contiene solo numeri interi positivi. Per esempio A = (1,1,2,2). Definiamo f(A)come l'insieme delle somme di tutti i sottocampi contigui non vuoti di A. In questo caso f(A) = {1,2,3,4,5,6}. I passaggi per produrre f(A) sono i seguenti:
I subarrays di Asono (1), (1), (2), (2), (1,1), (1,2), (2,2), (1,1,2), (1,2,2), (1,1,2,2). Le loro rispettive somme sono 1,1,2,2,2,3,4,4,5,6. Il set che ottieni da questo elenco è quindi {1,2,3,4,5,6}.
Compito
Dato un insieme di somme Sdate in ordine ordinato contenente solo numeri interi positivi e una lunghezza di array n, il tuo compito è quello di produrre almeno un array in Xmodo tale f(X) = S.
Ad esempio, se S = {1,2,3,5,6}e n = 3quindi un output valido è X = (1,2,3).
Se non esiste tale array, Xil codice dovrebbe generare un valore costante.
Esempi
Input:, n=4, S = (1, 3, 4, 5, 6, 8, 9, 10, 13)possibile output:X = (3, 5, 1, 4)
Input:, n=6, S = (2, 3, 4, 5, 7, 8, 9, 10, 12, 14, 17, 22)possibile output:X = (5, 3, 2, 2, 5, 5)
Input:, n=6, S = (2, 4, 6, 8, 10, 12, 16)possibile output:X = (4, 2, 2, 2, 2, 4)
Input:, n=6, S = (1, 2, 3, 4, 6, 7, 8, 10, 14)possibile output:X = (4, 2, 1, 1, 2, 4)
Ingresso: 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), possibile uscita: X = (1, 1, 3, 1, 2, 1, 2, 5, 4, 5).
Ingresso: 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), possibile uscita: X = (1, 2, 1, 3, 3, 1, 3, 3, 1, 3, 3, 1, 2, 1, 3).
Formato di input e output
Il tuo codice può accettare input e fornire output in qualsiasi formato di lettura facilmente comprensibile per te. Tuttavia, si prega di mostrare l'output del test sugli esempi nella domanda.
Tempo di esecuzione
Devi essere in grado di eseguire il codice fino al completamento per tutti gli esempi nella domanda. In linea di principio dovrebbe essere corretto per un nmassimo di, 15ma non è necessario dimostrare che sarebbe abbastanza veloce per tutti gli input.