Файл содержит последовательность натуральных чисел, не превышающих 100 000. Назовём тройкой три идущих подряд элемента последовательности.
Определите количество троек, для которых выполняются следующие условия:
— остаток от деления на 3 ровно одного числа из тройки равен остатку от деления на 3 минимального элемента всей последовательности;
— остаток от деления на 7 хотя бы двух чисел из тройки равен остатку от деления на 7 максимального элемента всей последовательности.
В ответе запишите два числа: сначала количество найденных троек, затем максимальную величину суммы элементов этих троек.
Ответ:
Приведём решение на языке Python.
a = [int(s) for s in open('17.txt')]
amin3 = min(a) % 3
amax7 = max(a) % 7
s3 = []
for i in range (len(a) - 2):
troika = [a[i] , a[i+1] , a[i+2]]
a3 = [x for x in troika if x % 3 == amin3]
a7 = [x for x in troika if x % 7 == amax7]
if len(a3) == 1 and len(a7) >= 2:
s3.append(sum(troika))
print(len(s3),max(s3))
Ответ: 228 и 262713.
Приведём решение Татьяны Юрченко на языке Python.
with open('17.txt') as f:
s = [int(x) for x in f.readlines()]
mm = min(s)
mx = max(s)
t = []
for i in range(len(s)-2):
if (s[i]%3 == mm%3) + (s[i+1]%3 == mm%3) + (s[i+2]%3 == mm%3) == 1:
if (s[i]%7 == mx%7)+(s[i+1]%7 == mx%7)+(s[i+2]%7 == mx%7) > 1:
t.append(s[i] + s[i+1] + s[i+2])
print(len(t), max(t))

