Betrachten Sie ein Array Avon 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 Asind (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 Sin sortierter Reihenfolge, die nur positive ganze Zahlen und eine Arraylänge enthält n, besteht Ihre Aufgabe darin, mindestens ein Array Xso auszugeben, dass f(X) = S.
Zum Beispiel, wenn S = {1,2,3,5,6}und n = 3dann eine gültige Ausgabe ist X = (1,2,3).
Wenn es kein solches Array gibt, sollte XIhr 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 nbis zu 1 korrekt sein, 15aber Sie müssen nicht nachweisen, dass es für alle Eingaben schnell genug ist.