последовательности, находящихся на расстоянии не меньше чем 5
На вход программы поступает последовательность из N целых положительных чисел, все числа в последовательности различны. Рассматриваются все пары различных элементов последовательности, находящихся на расстоянии не меньше чем 5 (разница в индексах элементов пары должна быть 5 или более, порядок элементов в паре неважен).
Необходимо определить количество таких пар, для которых произведение элементов делится на 11.
Описание входных и выходных данных
Даны два входных файла (файл A и файл B). В первой строке входных данных задаётся количество чисел N(5≤N≤1000). В каждой из последующих N строк записано одно целое положительное число, не превышающее 10000.
В качестве результата программа должна вывести одно число: количество пар элементов, находящихся в последовательности на расстоянии не меньше чем 5, в которых произведение элементов кратно 11.
Пояснение:
Из 7 заданных элементов с учётом допустимых расстояний между ними можно составить 3 произведения: 22 ⋅ 1, 22 ⋅ 11, 2 ⋅ 11. Из них на 11 делятся все 3 произведения.
Пример организации исходных данных во входном файле:
7
22
2
3
5
4
1
11
Пример выходных данных для приведённого выше примера входных данных:
3
В ответе запишите два числа: ПЕРВОЕ – число, полученное из первого файла; ВТОРОЕ – число, полученное из второго файла.
Ответ:

Источник: «19.04.2021 ЕГЭ 100БАЛЛОВ, Иосиф Дзеранов»
Решение:
27-A
|
1 2 3 4 5 6 7 8 9 10 11 |
f = open("27-A.txt") n = int(f.readline()) a = [] for i in range(n): a.append(int(f.readline())) k = 0 for i in range(0, n - 5): for j in range(i + 5, n): if (a[i] * a[j]) % 11 == 0: k += 1 print(k) |
Ответ: 5
27-B
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
f = open("27-B.txt") n = int(f.readline()) k=0 n11=0 a=[] for i in range(5): a.append(int(f.readline())) for i in range(5, n): if a[0]%11==0: n11+=1 x=int(f.readline()) if x%11==0: k+=i-5+1 else: k+=n11 del a[0] a.append(x) print(k) |
Ответ: 8587640