Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 7, 2016 23:26:02

andrey2255
Зарегистрирован: 2016-06-07
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите!Очень срочно!

У меня есть задача:
Вася решил выложить бордюр из кипричей для дорожки на своем участке. Расположенный по соседству кирпичный завод выпускает кирпичи длиной 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)

Офлайн

#2 Июнь 8, 2016 07:50:06

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

Помогите!Очень срочно!

Оформите код в тег код пожалуйста. Нечетабельно. Покажите что выводит итд



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#3 Июнь 8, 2016 09:51:09

andrey2255
Зарегистрирован: 2016-06-07
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите!Очень срочно!

Вот:
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 (Июнь 8, 2016 10:00:44)

Офлайн

#4 Июнь 8, 2016 10:04:50

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

Помогите!Очень срочно!

Что вот? Код должен выглядеть так:

def My(x):
    print x



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#5 Июнь 8, 2016 10:16:20

andrey2255
Зарегистрирован: 2016-06-07
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите!Очень срочно!

не получается!!!! ПОМОГИТЕ КАК!

Офлайн

#6 Июнь 8, 2016 10:20:33

andrey2255
Зарегистрирован: 2016-06-07
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите!Очень срочно!

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)

Офлайн

#7 Июнь 8, 2016 10:21:27

andrey2255
Зарегистрирован: 2016-06-07
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите!Очень срочно!

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)   

Офлайн

#8 Июнь 8, 2016 10:23:17

andrey2255
Зарегистрирован: 2016-06-07
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите!Очень срочно!

выдаёт:

10 2
1 2 3
4
3 3 2 2

Офлайн

#9 Июнь 8, 2016 10:24:30

andrey2255
Зарегистрирован: 2016-06-07
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите!Очень срочно!

есть еще какой-то вариант который я не вижу. На нем тесты не проходят.

Офлайн

#10 Июнь 9, 2016 01:09:51

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9896
Репутация: +  855  -
Профиль   Отправить e-mail  

Помогите!Очень срочно!

andrey2255
k = sorted(k * m)[::-1]
Это неправильно, надо умножать не на m, а на 2.

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

andrey2255
число M (1 ≤ M ≤ 15)
А вот то, чему может быть равно m.



Отредактировано py.user.next (Июнь 9, 2016 01:10:51)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version