1701.py

ФИПИ: Задание 17: Обработка числовой последовательности в файле В файле содержится последовательность натуральных чисел. Её элементы могут принимать целые значения от 1 до 100 000 включительно. Определите количество пар последовательности, в которых остаток от деления хотя бы одного из элементов на 16 равен минимальному элементу последовательности. В ответе запишите количество найденных пар, затем максимальную из сумм элементов таких пар. В данной задаче под парой подразумевается два идущих подряд элемента последовательности.
"""
ФИПИ: Задание 17: Обработка числовой последовательности в файле

В файле содержится последовательность натуральных чисел. 
Её элементы могут принимать целые значения от 1 до 100 000 включительно. 
Определите количество пар последовательности, в которых остаток от деления 
хотя бы одного из элементов на 16 равен минимальному элементу последовательности. 
В ответе запишите количество найденных пар, затем максимальную из сумм элементов таких пар.

В данной задаче под парой подразумевается два идущих подряд элемента последовательности.
"""

"""
ВЫВОДИМ ЧИСЛА ПОПАРНО
"""
f = open('1701.txt') # открываем файл
#print(f.readline()) # для проверки

a = [int(s) for s in f] # читаем файл построчно и добавляем в список
#print(a) # для проверки

for i in range(len(a) - 1): # перебираем все пары до предпоследнего элемента, так как последний элемент не имеет пары
    print(a[i], a[i+1])

"""
ПРОВЕРКА УСЛОВИЯ: 
остаток от деления хотя бы одного из элементов на 16 равен минимальному элементу последовательности.
"""

sum_par = [] # список для сумм пар

# опционально, можно записать min(a) в переменную и использовать её вместо min(a)
# mn = min(a)

for i in range(len(a) - 1):
    if a[i] % 16 == min(a) or a[i+1] % 16 == min(a):
        sum_par.append(a[i] + a[i+1])


"""
ВЫВОДИМ ОТВЕТ: КОЛИЧЕСТВО ПАР И МАКСИМАЛЬНУЮ СУММУ ПАР
"""
print(len(sum_par), max(sum_par))
"""
ФИПИ: Задание 17: Обработка числовой последовательности в файле

В файле содержится последовательность натуральных чисел. 
Её элементы могут принимать целые значения от 1 до 100 000 включительно. 
Определите количество пар последовательности, в которых остаток от деления 
хотя бы одного из элементов на 16 равен минимальному элементу последовательности. 
В ответе запишите количество найденных пар, затем максимальную из сумм элементов таких пар.

В данной задаче под парой подразумевается два идущих подряд элемента последовательности.
"""

"""
ВЫВОДИМ ЧИСЛА ПОПАРНО
"""
f = open('1701.txt') # открываем файл
#print(f.readline()) # для проверки

a = [int(s) for s in f] # читаем файл построчно и добавляем в список
#print(a) # для проверки

for i in range(len(a) - 1): # перебираем все пары до предпоследнего элемента, так как последний элемент не имеет пары
    print(a[i], a[i+1])

"""
ПРОВЕРКА УСЛОВИЯ: 
остаток от деления хотя бы одного из элементов на 16 равен минимальному элементу последовательности.
"""

sum_par = [] # список для сумм пар

# опционально, можно записать min(a) в переменную и использовать её вместо min(a)
# mn = min(a)

for i in range(len(a) - 1):
    if a[i] % 16 == min(a) or a[i+1] % 16 == min(a):
        sum_par.append(a[i] + a[i+1])


"""
ВЫВОДИМ ОТВЕТ: КОЛИЧЕСТВО ПАР И МАКСИМАЛЬНУЮ СУММУ ПАР
"""
print(len(sum_par), max(sum_par))

Файлы данных

Репозиторий на GitHub