Задача к ЕГЭ по информатике на тему «Программирование – оптимизация по времени и по памяти» №2

На вход программы поступает последовательность из 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])

Ответ: 69883
Оцените статью
Я решу все!