Дана последовательность натуральных чисел. Расстояние между элементами последовательности — это разность их порядковых номеров. Например, если два элемента стоят в последовательности рядом, расстояние между ними
Назовём парой любые два числа из последовательности, расстояние между которыми
Входные данные.
Первая строка входного файла содержит целое число N — общее количество чисел в наборе. Каждая из следующих
Вам даны два входных файла
Ответ:
Приведём решение пункта А на языке Python.
N = 1086
count = 0
f = open('27-A.txt')
s = f.readlines()
for i in range(1, len(s)):
for j in range(i, len(s)):
if j - i + 1 >= 14:
if (int(s[i]) + int(s[j])) % 8 == 0 and (int(s[i]) * int(s[j])) % 19683 == 0:
count += 1
print(count)
Ответ: 32 68713559.
Примечание.
Путь к файлу необходимо указать согласно расположению файла на Вашем компьютере.
Приведём решение Михаила Тиличеева на языке Python.
def count_3(num):
res = 0
while num > 0 and num % 3 == 0 and res < 9:
res += 1
num //= 3
return res
f = open('27.txt')
n = int(f.readline())
del_3 = [[0] * 10 for i in range(8)] # вложенный список, количество степеней 3 со вложенными индексами равными остатками от деления на 8
numbers_14 = [int(f.readline()) for _ in range(14)]
count = 0
for i in range(14, n):
new_x = int(f.readline())
x = numbers_14.pop(0)
index_8 = x % 8
index_3 = count_3(x)
del_3[index_8][index_3] += 1
new_index_8 = new_x % 8
new_index_3 = count_3(new_x)
for j in range(9-new_index_3, 10):
count += del_3[(8 - new_index_8) % 8][j]
numbers_14.append(new_x)
print(count)

