Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
2 / 1 / 1
Регистрация: 16.08.2019
Сообщений: 48

Задача "Нет Монет"

09.12.2019, 23:30. Показов 1423. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В питоне новичок, и нужно на олимпиаду решить задачу.
Задача "Нет Монет"
Гоша готовится к выпускной дискотеке, и хочет купить одежды.Он скопил капитал в виде N монет. В магазине есть на продажу k предметов одежды со стоимостями O1, O2... Ok.
У кассира есть L монет стоимостями L1, L2,L3,L4... Гоша хочет купить максимальное количество вещей, так чтобы иметь возможность за них заплатить и получить точную сдачу при необходимости.Программа должна выдавать стоимость такой покупки при заданных условиях.
Вход три несортированных списка в таком порядке:
1. Монеты Гоши,
2. Монеты Кассира
3. Стоимость Одежды

Списки в квадратных скобках ([]), числа в списках и сами списки отделены запятой
У Гоши и Кассира от 5 до 10 монет номиналами от 7 до 100.
Товаров от 5 до 20 стоимость от 20 до 100
Обратите внимание на ограничение по времени (ограничений по количеству попыток нет).
P.S. При разных вариантов купить одно и тоже количество вещей необходимо выбрать вариант наименьший по стоимости.
Sample Input:
[7, 9, 9, 8, 7],[7, 8, 9, 8, 9],[8, 8, 6, 2, 4, 3]
Sample Output:
31

Вот код который я накидал, но он не работает
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import itertools 
A = input().split('],[') 
g = [int(x) for x in A[0][1].split(',')] 
k = [int(x) for x in A[1].split(',')] 
cth = [int(x) for x in A[2][:-1].split(',')] 
 
sdacha_ = [] 
for i in range(1, len(k)+1): 
    sdacha = set(sum(_b) for _b in itertools.combinations(k, i)) 
    sdacha = list(sdacha) 
    sdacha_.extend(sdacha) 
 
gosha_ = [] 
for i in range(1, len(g)+1): 
    gosha = set(sum(_b) for _b in itertools.combinations(g, i)) 
    gosha = list(gosha) 
    gosha_.extend(gosha) 
    monet = sdacha_ + gosha_ 
 
sum_ = [sum(cth)] 
for i in range(1, len(cth)+1): 
    cloth = list(sum(_b) for _b in itertools.combinations(cth, i)) 
    cloth.sort(reverse=True) 
 
sum_i=[] 
for j in cloth: 
    sumx = sum(cth) - j 
    sum_i.append(sumx) 
    sum_.extend(sum_i) 
#Summa = 0 
cth.sort() 
gosha_.sort(reverse = True) 
G = 0 
if sum(g)< cth[0]: 
    Summa ==0 
else: 
    for i in range(0,len(sum_)): 
        for j in range(0,len(gosha_)): 
            S = gosha_[j] - sum_[i] 
        if S==0 and G==0: 
            Summa =sum_[i] 
            G=1 
        elif ((S>0) and (S in monet) and (G==0)): 
#print(sum_[i] , i) 
            Summa = sum_[i] 
            G=1 
 
print(Summa)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.12.2019, 23:30
Ответы с готовыми решениями:

Капитализация монет. Задача
Помогите решить задачу! Дается в начале 20 монет. Каждый день, количество монет увеличивается на 50 процентов. Т.е. первый день будет...

Задача с подбросом монет
Завис на задаче. Как я понял, тут должен быть использован цикл for, а вложенным циклом должен быть while, который тормозит цикл когда...

В древнем кладе было найдено nn монет различного веса. Каждая из монет была обозначена строчной буквой латиницы
В древнем кладе было найдено nn монет различного веса. Каждая из монет была обозначена строчной буквой латиницы. Все обозначения были...

2
2 / 1 / 1
Регистрация: 16.08.2019
Сообщений: 48
10.12.2019, 09:38  [ТС]
Уже сам решил.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import itertools 
import re
 
t = '[7, 9, 9, 8, 7],[7, 8, 9, 8, 9],[8, 8, 6, 2, 4, 3]'
# A = input('>> ')[1:-1].split('],[')
A = t[1:-1].split('],[')
 
gosha_money = [int(item) for item in re.compile('\d+').findall(A[0])]
gosha_money.sort()
 
kassir_money = [int(item) for item in re.compile('\d+').findall(A[1])]
kassir_money.sort()
 
cost_cloths = [int(item) for item in re.compile('\d+').findall(A[2])]
cost_cloths.sort()
 
def sums(lis):
    tmp = []
    for L in range(0, len(lis)+1):
        for subset in itertools.combinations(lis, L):
            tmp.append(sum(subset))
    return tmp
 
sum_g_m = sums(gosha_money)
sum_c_c = sums(cost_cloths)
sum_k_m = sums(kassir_money)
sum_g_m.sort(reverse=True)
sum_c_c.sort(reverse=True)
 
def main():
    def check(check_var):
        if item in sum_k_m:
            return True
        else:
            return False
 
    check_var = 0
    for item in sum_g_m:
        for item_2 in sum_c_c:
            if item - item_2 > 0:
                check_var = item - item_2
                if check(check_var) == True:
                    return item_2
                    break
print(main())
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
10.12.2019, 09:46
Python
1
2
3
4
s = eval('[7, 9, 9, 8, 7],[7, 8, 9, 8, 9],[8, 8, 6, 2, 4, 3]')
G = sorted(s[0])
K = sorted(s[1])
O = sorted(s[2])
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.12.2019, 09:46
Помогаю со студенческими работами здесь

задача - бросание 2 монет.
Мне нужно определить вероятности выпада 6,5,4,3,2,1,0 гербов при одновременном бросании двух монет три раза.

Задача про размен монет
У вас имеется неограниченное количество монеток N разных достоинств. Определить, можно ли с их помощью разменять заданные К сумм денег. ...

Задача про подбрасывание N монет
Здравствуйте. Помогите пожалуйста решить такую задачу: &quot;Смоделировать бросание N монет. Определить сколько раз выпадет &quot;орел&quot;,...

Задача с бросанием монет. Теория вероятностей
Ребята, выручайте! Препод по макроэкономике, америкос, задал задачу с подбрасыванием монет. Бьемся третий день, ничего не получается....

На столе в ряд разложены 40 монет.Задача на массивы
Доброго времени суток. На столе в ряд разложены 40 монет.Одни из них лежат орлом вверх(1),другие-решкой(0).При этом положение КАЖДОЙ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Видеокарта простаивает ночами? Вот 4 проекта, которые загрузят её наукой
Programma_Boinc 10.04.2026
Видеокарта простаивает ночами? Вот 4 проекта, которые загрузят её наукой Если на Windows стоит дискретная NVIDIA или AMD — можно отдать её вычислительную мощность реальным исследованиям. . . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru