Дана последовательность натуральных чисел. Необходимо определить количество её непрерывных подпоследовательностей, сумма элементов которых кратна 999.
Входные данные
Первая строка входного файла содержит целое число N – общее количество чисел в наборе. Каждая из следующих N строк содержит одно число. Гарантируется, что общая сумма всех чисел и число в ответе не превышают 2 ∙ 109.
Вам даны два входных файла (A и B), каждый из которых имеет описанную выше структуру. В ответе укажите два числа: сначала искомое количество для файла A, затем – для файла B.
Решение:
Решение только на 27-A — Шабан Азизов
|
f = open("ege-inf-stat08022022-27-A.txt") n = int(f.readline()) a = [int(s) for s in f] k = 0 for i in range(len(a)): s = 0 for j in range(i,len(a)): s += a[j] if s % 999 == 0: k+=1 print(k) |
Решение — Ижецкий Виталий Андеевич
|
input = open("ege-inf-stat08022022-27-B.txt").readline n = int(input()) a = [int(input()) for _ in range(n)] count = [0] * 999 count[0] = 1 sm = 0 for i in range(n): sm += a[i] ost = sm % 999 count[ost] += 1 ans = 0 for i in range(999): ans += count[i] * (count[i] - 1) // 2 print(ans) |
Решение — Каримов Минтимер Ростямович
|
input = open("ege-inf-stat08022022-27-A.txt").readline n = int(input()) a = [int(input()) for _ in range(n)] count = [0] * 999 count[0] = 1 sm = ans = 0 for i in a: sm = (sm + i) % 999 ans += count[sm] count[sm] += 1 print(ans) |
Ответ: 403 1801801220