Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Срочно, помогите пожалуйста с программой.

Калерия Евлампиева Ученик (108), на голосовании 1 неделю назад
Викторина состоит из пяти вопросов стоимостью 10, 20, 30, 40, 50 очков. Вопросы задаются по￾следовательно, на каждый вопрос участник может попытаться дать ответ либо не отвечать. Если
участник решил не отвечать, то он не получает очков. Если же участник решил дать ответ, то в
случае правильного ответа к его результату игры прибавляется стоимость вопроса, в случае непра￾вильного ответа из результата игры вычитается стоимость вопроса.
Например, если участник правильно ответил на вопросы за 10 и 20, затем решил не отвечать
на вопросы за 30 и 40, и наконец ответил неверно на вопрос за 50, то его результат игры равен
10 + 20 − 50 = −20.
Вам известно, что участник ответил верно на x вопросов и неверно на y (гарантируется, что
x+y 6 5). На оставшиеся вопросы участник решил не отвечать. Найдите все возможные результаты
игры, которые могли получиться, и упорядочите их по возрастанию
Голосование за лучший ответ
Hugo Stiglitz Ученик (112) 1 месяц назад
Как-будто так.

from itertools import combinations

def calculate_scores(x, y):
# Стоимости вопросов
question_values = [10, 20, 30, 40, 50]

# Найдем все возможные комбинации правильных и неправильных ответов
possible_results = set()

# Генерируем все комбинации для правильных ответов
for correct_questions in combinations(question_values, x):
# Генерируем все комбинации для неправильных ответов
remaining_questions = [q for q in question_values if q not in correct_questions]
for wrong_questions in combinations(remaining_questions, y):
# Вычисляем результат
score = sum(correct_questions) - sum(wrong_questions)
possible_results.add(score)

# Сортируем результаты
sorted_results = sorted(possible_results)
return sorted_results

# Чтение входных данных
x, y = map(int, input().split())
results = calculate_scores(x, y)
print(" ".join(map(str, results)))
Дмитрий ФилатовУченик (164) 1 месяц назад
Если у кого-то не работает, то дело в том, что нужно добавить repeat из itertools. Так, первая строка будет иметь такой вид:

from itertools import combinations, repeat

Дальше код правильный. Просто у кого-то может выдавать не те значения, тогда дело в первой сроке, но не в самом коде
Дмитрий Филатов, А какие ответы в целом вышли?
Похожие вопросы