В файле содержится последовательность из 10 000 целых положительных чисел. Каждое число не превышает
Ответ:
Сначала считаем все числа из файла в массив. Для каждой пары будем проверять,
Приведём решение задачи на языке 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 45 = 0) and ((arr[i] mod 18 = 0) or (arr[j] mod 18 = 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.
В результате работы данного алгоритма при вводе данных из файла ответ — 92471 9945.
Примечание.
Путь к файлу необходимо указать согласно расположению файла на Вашем компьютере.
Приведём решение на языке Python.
f = open("17.txt")
s = f.readlines()
k = 0
maxi = 0
for i in range(len(s)):
s[i] = int(s[i])
for i in range(len(s) - 1):
for j in range(i + 1, len(s)):
if ((s[i] - s[j]) % 45 == 0) and (s[i] % 18 == 0 or s[j] % 18 == 0):
k += 1
maxi = max(maxi, abs(s[i] - s[j]))
print(k, maxi)

