Рассмотрим массив Aдлины n. Массив содержит только натуральные числа. Например A = (1,1,2,2). Определим f(A)как множество сумм всех непустых непрерывных подмассивовA . В этом случае f(A) = {1,2,3,4,5,6}. Шаги для производства f(A) следующие:
Подмассивы Aесть (1), (1), (2), (2), (1,1), (1,2), (2,2), (1,1,2), (1,2,2), (1,1,2,2). Их соответствующие суммы 1,1,2,2,2,3,4,4,5,6. Поэтому набор, который вы получаете из этого списка{1,2,3,4,5,6} .
задача
Учитывая набор сумм, Sприведенных в отсортированном порядке, содержащих только натуральные числа и длину массива n, ваша задача - вывести хотя бы один массив, Xтакой что f(X) = S.
Например, если S = {1,2,3,5,6}и n = 3тогда действительный вывод X = (1,2,3).
Если такого массива нет, Xваш код должен вывести любое постоянное значение.
Примеры
Вход: n=4, S = (1, 3, 4, 5, 6, 8, 9, 10, 13)возможный выход:X = (3, 5, 1, 4)
Вход: n=6, S = (2, 3, 4, 5, 7, 8, 9, 10, 12, 14, 17, 22)возможный выход:X = (5, 3, 2, 2, 5, 5)
Вход: n=6, S = (2, 4, 6, 8, 10, 12, 16)возможный выход:X = (4, 2, 2, 2, 2, 4)
Вход: n=6, S = (1, 2, 3, 4, 6, 7, 8, 10, 14)возможный выход:X = (4, 2, 1, 1, 2, 4)
Вход: 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)возможный выход:X = (1, 1, 3, 1, 2, 1, 2, 5, 4, 5).
Входной сигнал: 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), возможно выход: X = (1, 2, 1, 3, 3, 1, 3, 3, 1, 3, 3, 1, 2, 1, 3).
Формат ввода и вывода
Ваш код может принимать и выводить данные в любом удобном для человека формате. Однако, пожалуйста, покажите результаты тестирования на примерах в вопросе.
Продолжительность
Вы должны быть в состоянии выполнить код до завершения для всех примеров в вопросе. В принципе он должен быть верным n, 15но вам не нужно доказывать, что он будет достаточно быстрым для всех входных данных.