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
Дальше код правильный. Просто у кого-то может выдавать не те значения, тогда дело в первой сроке, но не в самом коде
участник решил не отвечать, то он не получает очков. Если же участник решил дать ответ, то в
случае правильного ответа к его результату игры прибавляется стоимость вопроса, в случае неправильного ответа из результата игры вычитается стоимость вопроса.
Например, если участник правильно ответил на вопросы за 10 и 20, затем решил не отвечать
на вопросы за 30 и 40, и наконец ответил неверно на вопрос за 50, то его результат игры равен
10 + 20 − 50 = −20.
Вам известно, что участник ответил верно на x вопросов и неверно на y (гарантируется, что
x+y 6 5). На оставшиеся вопросы участник решил не отвечать. Найдите все возможные результаты
игры, которые могли получиться, и упорядочите их по возрастанию