Файл содержит последовательность натуральных чисел, не превышающих 100 000. Назовём тройкой три идущих подряд элемента последовательности.
Определите количество троек, для которых выполняются следующие условия:
– ровно два числа в тройке пятизначные;
– хотя бы одно число в тройке делится на 5;
– сумма элементов тройки больше максимального элемента последовательности, запись которого заканчивается на 321. (Гарантируется, что в последовательности есть хотя бы один элемент, запись которого заканчивается на 321.)
В ответе запишите два числа: сначала количество найденных троек, затем максимальную величину суммы элементов этих троек.
Ответ:
(количество найденных троек) (максимальную величину суммы элементов этих троек)

СтатГрад Вариант ИН2310202 19 декабря 2023 – задание №17
Решение:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
f=open('ege-statgrad-19122023-z17.txt') a=list(map(int, f.readlines())) m=-10**20 for i in range(len(a)): if a[i]>m and a[i]%1000==321: m=a[i] k=0 ms=-10**20 for i in range(len(a)-2): if (len(str(a[i])) == 5 and len(str(a[i + 1])) == 5 and len(str(a[i + 2])) != 5) or \ (len(str(a[i])) == 5 and len(str(a[i + 2])) == 5 and len(str(a[i + 1])) != 5) or \ (len(str(a[i + 1])) == 5 and len(str(a[i + 2])) == 5 and len(str(a[i])) != 5): if a[i]%5==0 or a[i+1]%5==0 or a[i+2]%5==0: if (a[i] + a[i + 1] + a[i + 2]) > m: k += 1 if a[i] + a[i + 1] + a[i + 2] > ms: ms = a[i] + a[i + 1] + a[i + 2] print(k, ms) |
Ответ: 269 198654