Дана последовательность из N целых чисел (они могут быть положительными, отрицательными или равными 0). Необходимо выбрать из этих чисел два числа так, чтобы их произведение было как можно меньшим (не рассматриваются квадраты данных чисел, но можно выбрать произведение двух различных элементов последовательности, равных друг другу). В первой строке входных данных записано целое число N, 2 ≤ N ≤105 – количество данных чисел. Следующие N строк содержат сами числа, не превосходящие по модулю 40 000. Программа должна вывести единственное целое число – наименьшее возможное произведение двух различных элементов этой последовательности.

29 Мая 2019 в 19:43
462 +1
0
Ответы
1

Пример решения на Python:

N = int(input())
numbers = []
for _ in range(N):
numbers.append(int(input()))
numbers.sort()
if numbers[0] >= 0 or numbers[-1] <= 0:
print(numbers[0] * numbers[1])
else:
print(min(numbers[0] * numbers[1], numbers[-1] * numbers[-2]))

Программа сначала считывает количество чисел N, затем считывает сами числа и добавляет их в список numbers. Затем список numbers сортируется. Далее программа проверяет, что все числа положительные или все числа отрицательные, и выводит произведение двух минимальных по модулю чисел. В противном случае программа выводит минимальное произведение из произведения двух самых маленьких чисел и произведения двух самых больших чисел.

21 Апр 2024 в 02:14
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 96 005 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир