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

Срочно!! Написать код

Mina Ученик (107), на голосовании 6 дней назад
В разведывательное управление доставили сейф с секретной информацией, кодовый замок на котором открывается комбинацией из n цифр, каждая цифра может принимать b различных значений от 0 до b−1. Код неизвестен, однако разведчики передали несколько донесений о том, что сумма цифр кода в некоторых заданных позициях равна какому-то известному числу. Используя информацию из всех полученных донесений, определите, сколько существует возможных кодов, удовлетворяющих этим условиям.
Голосование за лучший ответ
Владимир Овсянников Ученик (106) 1 месяц назад
def count_codes(b, n, t, reports):
from itertools import product


masks = []
sums = []
for i in range(t):
mask, s = reports[2 * i], reports[2 * i + 1]
masks.append(mask)
sums.append(int(s))


def is_valid(code):
for mask, expected_sum in zip(masks, sums):
current_sum = sum(int(code[i]) for i in range(n) if mask[i] == '1')
if current_sum != expected_sum:
return False
return True


all_codes = product(range(b), repeat=n)


valid_count = sum(1 for code in all_codes if is_valid(code))

return valid_count


b = int(input().strip())
n = int(input().strip())
t = int(input().strip())
reports = [input().strip() for _ in range(2 * t)]


result = count_codes(b, n, t, reports)
print(result)
Владимир ОвсянниковУченик (106) 1 месяц назад
должно работать, язык питон
Саня ВазелиновУченик (101) 1 месяц назад
Должно?
Dino SuleymanovУченик (123) 1 месяц назад
100/100, спасибо
Похожие вопросы