Betrachten Sie ein Array A
von Länge n
. Das Array enthält nur positive ganze Zahlen. Zum Beispiel A = (1,1,2,2)
. Definieren wir f(A)
als die Summe aller nicht leeren zusammenhängenden Subarrays vonA
. In diesem Fall f(A) = {1,2,3,4,5,6}
. Die zu erzeugenden Schritte f(A)
sind wie folgt:
Die Subarrays von A
sind (1), (1), (2), (2), (1,1), (1,2), (2,2), (1,1,2), (1,2,2), (1,1,2,2)
. Ihre jeweiligen Summen sind 1,1,2,2,2,3,4,4,5,6
. Die Menge, die Sie aus dieser Liste erhalten, ist daher {1,2,3,4,5,6}
.
Aufgabe
Bei einer Menge von Summen S
in sortierter Reihenfolge, die nur positive ganze Zahlen und eine Arraylänge enthält n
, besteht Ihre Aufgabe darin, mindestens ein Array X
so auszugeben, dass f(X) = S
.
Zum Beispiel, wenn S = {1,2,3,5,6}
und n = 3
dann eine gültige Ausgabe ist X = (1,2,3)
.
Wenn es kein solches Array gibt, sollte X
Ihr Code einen konstanten Wert ausgeben.
Beispiele
Eingabe:, n=4, S = (1, 3, 4, 5, 6, 8, 9, 10, 13)
mögliche Ausgabe:X = (3, 5, 1, 4)
Eingabe:, n=6, S = (2, 3, 4, 5, 7, 8, 9, 10, 12, 14, 17, 22)
mögliche Ausgabe:X = (5, 3, 2, 2, 5, 5)
Eingabe:, n=6, S = (2, 4, 6, 8, 10, 12, 16)
mögliche Ausgabe:X = (4, 2, 2, 2, 2, 4)
Eingabe:, n=6, S = (1, 2, 3, 4, 6, 7, 8, 10, 14)
mögliche Ausgabe:X = (4, 2, 1, 1, 2, 4)
Input: 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)
möglicher Ausgang: X = (1, 1, 3, 1, 2, 1, 2, 5, 4, 5)
.
Input: 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)
möglicher Ausgang: X = (1, 2, 1, 3, 3, 1, 3, 3, 1, 3, 3, 1, 2, 1, 3)
.
Eingabe- und Ausgabeformat
Ihr Code kann Eingaben und Ausgaben in jedem leicht lesbaren Format annehmen, das Sie für bequem halten. Bitte zeigen Sie die Ausgabe des Tests jedoch an den Beispielen in der Frage.
Laufzeit
Sie müssen in der Lage sein, den Code für alle Beispiele in der Frage vollständig auszuführen. Es sollte im Prinzip für n
bis zu 1 korrekt sein, 15
aber Sie müssen nicht nachweisen, dass es für alle Eingaben schnell genug ist.