Предмет: Информатика,
автор: NightTheme
Минимальное произведение
Дана последовательность из N целых чисел (они могут быть положительными, отрицательными или равными 0). Необходимо выбрать из этих чисел два числа так, чтобы их произведение было как можно меньшим (не рассматриваются квадраты данных чисел, но можно выбрать произведение двух различных элементов последовательности, равных друг другу).
Формат входных данных
В первой строке входных данных записано целое число N, (2⩽N⩽105)— количество данных чисел. Следующие N строк содержат сами числа, не превосходящие по модулю 40000.
Формат выходных данных
Программа должна вывести единственное целое число — наименьшее возможное произведение двух различных элементов этой последовательности.
Помогите пожалуйста! На пайтоне!
Ответы
Автор ответа:
1
Программа:
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
Похожие вопросы
Предмет: Русский язык,
автор: Mary1234567890qw
Предмет: Английский язык,
автор: Аноним
Предмет: Русский язык,
автор: egvo75
Предмет: Английский язык,
автор: veronikachvanov1
Предмет: География,
автор: lemuro4kaovt2gn