1708.py
В файле содержится последовательность целых чисел.
Её элементы могут принимать целые значения
от -100 000 до 100 000 включительно.
В файле содержится последовательность
целых чисел, каждое из которых по модулю не превышает 100 000.
Определите количество троек элементов последовательности,
в которых больше одного из трёх элементов оканчиваются на 3 или 5,
а произведение элементов тройки не больше куба максимального
четырёхзначного элемента последовательности.
В ответе запишите количество найденных троек,
затем максимальную из сумм элементов таких троек.
В данной задаче под тройкой подразумевается
три идущих подряд элемента последовательности.
"""
В файле содержится последовательность целых чисел.
Её элементы могут принимать целые значения
от -100 000 до 100 000 включительно.
В файле содержится последовательность
целых чисел, каждое из которых по модулю не превышает 100 000.
Определите количество троек элементов последовательности,
в которых больше одного из трёх элементов оканчиваются на 3 или 5,
а произведение элементов тройки не больше куба максимального
четырёхзначного элемента последовательности.
В ответе запишите количество найденных троек,
затем максимальную из сумм элементов таких троек.
В данной задаче под тройкой подразумевается
три идущих подряд элемента последовательности.
"""
f = open('1708.txt') # открываем файл
#print(f.readline()) # для проверки
a = [int(s) for s in f] # читаем файл построчно и добавляем в список
#print(a) # для проверки
"""
ПРОВЕРКА УСЛОВИЯ:
поиск максимального четырёхзначного элемента
"""
max4 = [] # список для максимальных элементов оканчивающихся на 25
for x in a:
if len(str(abs(x))) == 4:
max4.append(x)
max4 = max(max4) # находим максимальный элемент в списке
print(max4) # для проверки
"""
ПРОВЕРКА УСЛОВИЯ:
больше одного из трёх элементов оканчиваются на 3 или 5,
а произведение элементов тройки не больше куба max4
"""
sum_tri = [] # список для сумм троек
for i in range(len(a) - 2):
c = (abs(a[i]) % 10 in (3, 5)) + \
(abs(a[i+1]) % 10 in (3, 5)) + \
(abs(a[i+2]) % 10 in (3, 5))
if c > 1 and a[i] * a[i+1] * a[i+2] <= max4 ** 3:
sum_tri.append(a[i] + a[i+1] + a[i+2])
"""
ВЫВОДИМ ОТВЕТ: КОЛИЧЕСТВО ТРОЕК И МАКСИМАЛЬНУЮ СУММУ ТРОЕК
"""
print(len(sum_tri), max(sum_tri))
"""
В файле содержится последовательность целых чисел.
Её элементы могут принимать целые значения
от -100 000 до 100 000 включительно.
В файле содержится последовательность
целых чисел, каждое из которых по модулю не превышает 100 000.
Определите количество троек элементов последовательности,
в которых больше одного из трёх элементов оканчиваются на 3 или 5,
а произведение элементов тройки не больше куба максимального
четырёхзначного элемента последовательности.
В ответе запишите количество найденных троек,
затем максимальную из сумм элементов таких троек.
В данной задаче под тройкой подразумевается
три идущих подряд элемента последовательности.
"""
f = open('1708.txt') # открываем файл
#print(f.readline()) # для проверки
a = [int(s) for s in f] # читаем файл построчно и добавляем в список
#print(a) # для проверки
"""
ПРОВЕРКА УСЛОВИЯ:
поиск максимального четырёхзначного элемента
"""
max4 = [] # список для максимальных элементов оканчивающихся на 25
for x in a:
if len(str(abs(x))) == 4:
max4.append(x)
max4 = max(max4) # находим максимальный элемент в списке
print(max4) # для проверки
"""
ПРОВЕРКА УСЛОВИЯ:
больше одного из трёх элементов оканчиваются на 3 или 5,
а произведение элементов тройки не больше куба max4
"""
sum_tri = [] # список для сумм троек
for i in range(len(a) - 2):
c = (abs(a[i]) % 10 in (3, 5)) + \
(abs(a[i+1]) % 10 in (3, 5)) + \
(abs(a[i+2]) % 10 in (3, 5))
if c > 1 and a[i] * a[i+1] * a[i+2] <= max4 ** 3:
sum_tri.append(a[i] + a[i+1] + a[i+2])
"""
ВЫВОДИМ ОТВЕТ: КОЛИЧЕСТВО ТРОЕК И МАКСИМАЛЬНУЮ СУММУ ТРОЕК
"""
print(len(sum_tri), max(sum_tri))