Rozważ tablicę A
długości n
. Tablica zawiera tylko dodatnie liczby całkowite. Na przykład A = (1,1,2,2)
. Zdefiniujmy f(A)
jako zbiór sum wszystkich niepustych, sąsiadujących pod-macierzy A
. W tym przypadku f(A) = {1,2,3,4,5,6}
. Kroki do produkcji f(A)
są następujące:
Podziemne A
są (1), (1), (2), (2), (1,1), (1,2), (2,2), (1,1,2), (1,2,2), (1,1,2,2)
. Ich odpowiednie kwoty to 1,1,2,2,2,3,4,4,5,6
. Zestaw, który otrzymujesz z tej listy, jest zatem {1,2,3,4,5,6}
.
Zadanie
Biorąc pod uwagę zestaw sum S
podanych w posortowanej kolejności, zawierający tylko dodatnie liczby całkowite i długość tablicy n
, Twoim zadaniem jest wyprowadzenie co najmniej jednej X
takiej tablicy f(X) = S
.
Na przykład, jeśli S = {1,2,3,5,6}
i n = 3
wtedy poprawnym wynikiem jest X = (1,2,3)
.
Jeśli nie ma takiej tablicy, X
kod powinien wypisać dowolną stałą wartość.
Przykłady
Wejście:, n=4, S = (1, 3, 4, 5, 6, 8, 9, 10, 13)
możliwe wyjście:X = (3, 5, 1, 4)
Wejście:, n=6, S = (2, 3, 4, 5, 7, 8, 9, 10, 12, 14, 17, 22)
możliwe wyjście:X = (5, 3, 2, 2, 5, 5)
Wejście:, n=6, S = (2, 4, 6, 8, 10, 12, 16)
możliwe wyjście:X = (4, 2, 2, 2, 2, 4)
Wejście:, n=6, S = (1, 2, 3, 4, 6, 7, 8, 10, 14)
możliwe wyjście:X = (4, 2, 1, 1, 2, 4)
Wejście: 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)
możliwe wyjścia: X = (1, 1, 3, 1, 2, 1, 2, 5, 4, 5)
.
Wejście: 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)
możliwe wyjścia: X = (1, 2, 1, 3, 3, 1, 3, 3, 1, 3, 3, 1, 2, 1, 3)
.
Format wejściowy i wyjściowy
Twój kod może pobierać dane wejściowe i generować dane wyjściowe w dowolnym, łatwym dla człowieka formacie, który uważasz za dogodny. Proszę jednak pokazać wyniki testowania na przykładach w pytaniu.
Czas trwania
Musisz być w stanie uruchomić kod do końca dla wszystkich przykładów w pytaniu. Zasadniczo powinno to być poprawne n
, 15
ale nie trzeba udowadniać, że byłoby wystarczająco szybkie dla wszystkich danych wejściowych.