Минимальное произведение
Дана последовательность из N целых чисел (они могут быть положительными, отрицательными или равными 0). Необходимо выбрать из этих чисел два числа так, чтобы их произведение было как можно меньшим (не рассматриваются квадраты данных чисел, но можно выбрать произведение двух различных элементов последовательности, равных друг другу).
Формат входных данных
В первой строке входных данных записано целое число N, (2⩽N⩽105)— количество данных чисел. Следующие N строк содержат сами числа, не превосходящие по модулю 40000.
Формат выходных данных
Программа должна вывести единственное целое число — наименьшее возможное произведение двух различных элементов этой последовательности.
Помогите пожалуйста! На пайтоне!
Answers & Comments
Программа:
Python:
N = int(input())
arr = [int(input()) for _ in range(N)]
arr.sort()
print(min(arr[0] * arr[1], arr[-1] * arr[0], arr[-2] * arr[-1]))
Объяснение:
В начале вводится число N, необъодимое по условию. Далее - в массив заносится N целых чисел с клавиатуры. Сортируем данный массив с помощью встроенной функции sort(). После сортировки у нас получается массив, в котором два наименьших элемента будут первыми двумя элементами массива, а два наибольших элемента - двумя последними. С помощью встроенной функции Python min() находим минимальное произведение среди таких-вот элементов (два первых, два последних). arr[0] и arr[1] - два минимальных, arr[-2] и arr[-1] - два максимальных (последних).
Результат:
3
-5
1
0
-5
3
0
1
2
0