У меня есть задача:
Вася решил выложить бордюр из кипричей для дорожки на своем участке. Расположенный по соседству кирпичный завод выпускает кирпичи длиной A1, A2, …, Am. Промоутеры завода раздают потенциальным клиентам по 2 кирпича бесплатно. Вася взял по 2 кирпича каждого типа и теперь хочет узнать, может ли он выложить из них бордюр длиной N и толщиной в один кирпич.
Формат ввода
Сначала вводится число N (1 ≤ N ≤ 109), затем — число M (1 ≤ M ≤ 15) и далее M попарно различных чисел A1, A2, …, AM (1 ≤ Ai ≤ 109).
Формат вывода
Выведите сначала K — количество кипричей, которое нужно использовать для выкладывания бордюра, если можно выложить бордюр длиной ровно N. Далее выведите K чисел, задающих длины использованных кирпичей. Если решений несколько, выведите вариант, в котором Вася использует наименьшее количество кирпичей. Если таких вариантов несколько, выведите любой из них.
Если для выкладывания бордюра придется обязательно разломить какой-то кирпич, то выведите одно число 0. Если же у Васи не хватит кипричей, чтобы выложить бордюр, выведите одно число –1 (минус один).
Пример 1
Ввод Вывод
5 2
1 2
3
2 2 1
Пример 2
Ввод Вывод
7 2
1 2
-1
Пример 3
Ввод Вывод
5 2
3 4
0
Не могу найти неправильный вывод.
вот код:
n, m = list(map(int, input().split()))
k = list(map(int, input().split()))
k = sorted(k * m)
a = 0
b = 0
c =
d = 0
def r©:
c = str©.replace(',', ‘')
c = c.replace(’[', ‘')
c = c.replace(’]', '')
return c
if n < sum(k):
for i in k:
a = i
c =
for x in k:
i += x
c +=
if i == n:
d = len©
b = sorted©
break
if d > 0:
print(d)
print(r(b))
elif d == 0:
print(0)
elif n == sum(k):
a = len(k)
c = k
print(a)
print(r©)
else:
print(-1)