Файл содержит последовательность целых чисел, по модулю не превышающих 10 000. Назовём парой два идущих подряд элемента последовательности.
Определите количество таких пар, в которых запись меньшего элемента заканчивается
Ответ:
Решим в два прохода. В первом проходе найдём меньший элемент заканчивается
Приведём решение на языке Python.
count = 0
m = -10001
f = open('17.txt')
l = [int(i) for i in f]
mini=10001
for i in range(len(l) - 1):
if abs(l[i]) % 10 == 3:
mini = min(mini, l[i])
for i in range(len(l) - 1):
if (((l[i] < l[i+1]) and (abs(l[i]) % 10 == 3)) or ((l[i] > l[i+1]) and (abs(l[i+1]) % 10 == 3))) and (l[i]**2+l[i+1]**2 < mini**2):
count += 1
m = max(m, l[i]**2 + l[i + 1]**2)
print(count, m)
Результат работы программы —
Ответ: 355 99033293.
Примечание.
Путь к файлу необходимо указать согласно расположению файла на Вашем компьютере.
Приведём решение Ильи Андрианова на языке Python.
M = [int(x) for x in open('17.txt')]
D = [x for x in M if str(x)[-1] == '3']
R = []
for i in range(len(M)-1):
x, y = M[i], M[i+1]
if str(min(x, y))[-1] == '3':
if (x ** 2 + y ** 2) < min(D) ** 2:
R.append(x ** 2 + y ** 2)
print(len(R), max(R))

