На вход программы поступает последовательность из N натуральных чисел, все числа в последовательности различны. Гарантируется, что все числа различны. Рассматриваются всевозможные непустые подмножества, состоящие из элементов последовательности. Необходимо найти количество подмножеств, в которых сумма элементов кратна 15.
Пример входных данных:
Первая строка входного файла содержит число N – общее количество чисел в наборе. Каждая из следующих N строк содержит натуральные числа, не превышающих 10 000.
Пример входного файла
5
5
10
15
91
33
Для указанных данных ответом будут являться {15}, {5, 10}, {5, 10, 15}, то есть 3.
n = int(input())
k = 15
ans = [0]*k
for i in range(n):
x = int(input())
ans_new = ans[:] #Аналог ans.copy()
for i in range(k):
ans_new[(i+x) % k] += ans[i]
ans_new[x % k] += 1
ans = ans_new[:]
print(ans[0])
k = 15
ans = [0]*k
for i in range(n):
x = int(input())
ans_new = ans[:] #Аналог ans.copy()
for i in range(k):
ans_new[(i+x) % k] += ans[i]
ans_new[x % k] += 1
ans = ans_new[:]
print(ans[0])
Ответ: 69883