На вход программы поступает последовательность из натуральных чисел, все числа в последовательности различны. Рассматриваются всевозможные непустые подмножества, состоящие из элементов последовательности. Необходимо найти количество подмножеств, в которых сумма элементов кратна
.
Пример входных данных:
Первая строка входного файла содержит число – общее количество чисел в наборе. Каждая из следующих
строк содержит натуральное число, не превышающее
.
Пример входного файла:
Для указанных данных ответом будет являться .
f = open(’27A.txt’)
n = int(f.readline())
k = 2
ans = [0]*k
for i in range(n):
x = int(f.readline())
ans_new = ans[:] #Аналог ans.copy()
#Подсчет ответа для уже существующих подмножеств
for j in range(k):
ans_new[(j+x) % k] += ans[j]
#Составление нового множества из одного числа x
ans_new[x % k] += 1
#Сохранение нового количества множеств
ans = ans_new[:]
print(ans[0])
Ответ: 524287 633825300114114700748351602687