1702.py

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

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

Определите количество пар последовательности, 
в которых элементы не равны, а абсолютное значение 
их разности делится на минимальный положительный 
элемент последовательности, кратный 35. 

Гарантируется, что такой элемент последовательности есть.
В ответе запишите количество найденных пар, 
затем максимальную из сумм элементов таких пар.

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

"""

f = open('1702.txt') # открываем файл
#print(f.readline()) # для проверки

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

"""
ПРОВЕРКА УСЛОВИЯ: 
поиск минимального положит кратного 35
"""
sum_par = [] # список для сумм пар
mn35 = [] # список для минимальных положительных элементов кратных 35
for x in a:
    if x > 0 and x % 35 == 0:
        mn35.append(x)
mn35 = min(mn35) # находим минимальный элемент в списке

# другая форма записи:
#mn35 = min([x for x in a if x > 0 and x % 35 == 0])

#print(mn35) # для проверки

"""
ПРОВЕРКА УСЛОВИЯ: 
элементы не равны, а абсолютное значение их разности (модуль abs) 
делится на мин положит элемент mn35
"""

for i in range(len(a) - 1):
    if a[i] != a[i+1] and abs(a[i] - a[i+1]) % mn35 == 0: 
        # проверка что первый элемент не равен второму И разность делится на mn35
        sum_par.append(a[i] + a[i+1])

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

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

Определите количество пар последовательности, 
в которых элементы не равны, а абсолютное значение 
их разности делится на минимальный положительный 
элемент последовательности, кратный 35. 

Гарантируется, что такой элемент последовательности есть.
В ответе запишите количество найденных пар, 
затем максимальную из сумм элементов таких пар.

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

"""

f = open('1702.txt') # открываем файл
#print(f.readline()) # для проверки

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

"""
ПРОВЕРКА УСЛОВИЯ: 
поиск минимального положит кратного 35
"""
sum_par = [] # список для сумм пар
mn35 = [] # список для минимальных положительных элементов кратных 35
for x in a:
    if x > 0 and x % 35 == 0:
        mn35.append(x)
mn35 = min(mn35) # находим минимальный элемент в списке

# другая форма записи:
#mn35 = min([x for x in a if x > 0 and x % 35 == 0])

#print(mn35) # для проверки

"""
ПРОВЕРКА УСЛОВИЯ: 
элементы не равны, а абсолютное значение их разности (модуль abs) 
делится на мин положит элемент mn35
"""

for i in range(len(a) - 1):
    if a[i] != a[i+1] and abs(a[i] - a[i+1]) % mn35 == 0: 
        # проверка что первый элемент не равен второму И разность делится на mn35
        sum_par.append(a[i] + a[i+1])

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

Файлы данных

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