Тип 17 № 37373 

Обработки числовой последовательности. Задания для подготовки
i
Решение. Сначала считаем все числа из файла в массив. Для каждой пары будем проверять, кратна ли 36 разность элементов пары и кратен ли 13 хотя бы один из элементов пары. Если разность элементов кратна 36 и хотя бы один из элементов пары кратен 13, будем увеличивать значения счётчика count и проверять, больше ли разность элементов пары текущей максимальной разности. Если разность элементов пары больше текущей максимальной разности, будем обновлять значение переменной maxdif.
Приведём решение задачи на языке Pascal.
var
i, j: integer;
count: longint;
maxdif: integer;
arr: array[1..10000] of integer;
f: text;
begin
assign(f,'C:\17.txt');
reset(f);
maxdif := 0;
count := 0;
for i := 1 to 10000 do readln(f, arr[i]);
for i := 1 to 10000 - 1 do
for j := i + 1 to 10000 do begin
if (abs(arr[i] - arr[j]) mod 36 = 0) and ((arr[i] mod 13 = 0) or (arr[j] mod 13 = 0)) then begin
count := count + 1;
if abs(arr[i] - arr[j]) > maxdif then maxdif := abs(arr[i] - arr[j]);
end;
end;
writeln(count, ' ', maxdif);
end.
Приведём решение Николая Чуркина (Тимашевск) на языке Python.
count = m = 0
f = open('17.txt')
l = [int(i) for i in f]
for i in range(len(l) - 1):
for j in range(i + 1, len(l)):
if (l[i] - l[j]) % 36 == 0 and (l[i] % 13 == 0 or l[j] % 13 == 0):
count += 1
m = max(m, abs(l[i] - l[j]))
print(count, m)
В результате работы данного алгоритма при вводе данных из файла ответ — 212587 9972.
Примечание 1.
Путь к файлу необходимо указать согласно расположению файла на Вашем компьютере.
Примечание 2.
Заметим, что под парой понимаются два различных элемента последовательности, при этом порядок следования элементов в паре не важен, тогда количество всех возможных пар составит N · (N − 1) / 2.
Ответ: 212587&9972