Пример 1
В файле содержится последовательность целых чисел, каждое от −10 000 до 10 000, по одному в строке. Определите количество пар соседних элементов последовательности, в которых хотя бы одно число оканчивается на 3, а сумма элементов пары меньше максимального элемента последовательности, кратного 13. В ответе запишите количество найденных пар, затем максимальную из сумм элементов таких пар.
Показать решение
1. Сначала один раз находим максимальный элемент, кратный 13, — он нужен для сравнения.
2. Потом проходим по всем парам соседей и считаем подходящие.
3. У отрицательных чисел последняя цифра — это последняя цифра модуля: −13 % 10 в Python даёт 7, поэтому берём abs.
a = [int(x) for x in open('17.txt')] # читаем все числа файла в список
m = max(x for x in a if x % 13 == 0) # максимальный элемент, кратный 13
cnt, best = 0, -10**9 # количество пар и максимальная сумма
for i in range(len(a) - 1): # i — индекс левого элемента пары соседей
x, y = a[i], a[i + 1] # сама пара
end3 = abs(x) % 10 == 3 or abs(y) % 10 == 3 # хотя бы одно оканчивается на 3 (abs — для отрицательных)
if end3 and x + y < m: # оба условия выполнены
cnt += 1 # пара подходит
best = max(best, x + y) # обновляем максимальную сумму
print(cnt, best) # два числа ответаОтвет зависит от файла с экзамена, поэтому готовых чисел здесь нет.
