Найти - Пользователи
Полная версия: Помогите!Очень срочно!
Начало » Центр помощи » Помогите!Очень срочно!
1
andrey2255
У меня есть задача:
Вася решил выложить бордюр из кипричей для дорожки на своем участке. Расположенный по соседству кирпичный завод выпускает кирпичи длиной 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)
ZerG
Оформите код в тег код пожалуйста. Нечетабельно. Покажите что выводит итд
andrey2255
Вот:
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 c
b = sorted c
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 c )
else:
print(-1)
ZerG
Что вот? Код должен выглядеть так:

def My(x):
    print x
andrey2255
не получается!!!! ПОМОГИТЕ КАК!
andrey2255
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 c
b = sorted c
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 c )
else:
print(-1)
andrey2255
n, m = list(map(int, input().split()))
k = list(map(int, input().split()))
k = sorted(k * m)[::-1] 
a = 0
b = 0
c = []
d = 0
def r(c):
    c = str(c).replace(',', '')
    c = c.replace('[', '')
    c = c.replace(']', '')
    return c
if n < sum(k):
    for i in k:
        a = i
        c = [a]
        for x in k:
            i += x
            c += [x]
            if i == n:
                d = len(c)
                b = sorted(c)[::-1]
                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(c))
else:
    print(-1)   
andrey2255
выдаёт:

10 2
1 2 3
4
3 3 2 2
andrey2255
есть еще какой-то вариант который я не вижу. На нем тесты не проходят.
py.user.next
andrey2255
k = sorted(k * m)[::-1]
Это неправильно, надо умножать не на m, а на 2.

andrey2255
Промоутеры завода раздают потенциальным клиентам по 2 кирпича бесплатно.
Вот условие.

andrey2255
число M (1 ≤ M ≤ 15)
А вот то, чему может быть равно m.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB