Бондарев-Исаханян
?>

Спитоном наибольшее произведение двух чисел дан список, заполненный произвольными целыми числами. найдите в этом списке два числа, абсолютное произведение которых максимально. выведите эти числа в порядке неубывания. решение должно иметь сложность o(n), где n - размер списка. то есть сортировку использовать нельзя. тест 1 входные данные: 4 3 5 2 5 вывод программы: 5 5

Информатика

Ответы

mar1030

a = list(map(int, input.split()))

for i in range(len(a)):

a[i] = abs(a[i])

m = max(a)

a.pop(a.index(m))

n = max(a)

print(min(m, n), max(m, n))

Принцип решения в том, чтобы убрать все минусы у чисел, взять максимум, сохранить его и удалить из списка, а затем взять ещё один максимум, потом вывести числа в порядке неубывания.

gallows-warlike-0z

Для  данной сортировки используем алгоритм сортировки слиянием

В начале разбиваем арбузы на 2 группы по 2Каждую группу взвешиваем и сортируем (т.е. всего 2 взвешивания)Теперь собираем вместе, сравниваем сначала более легкие арбузы и находим самый легкий (всего 3 взвешивания)Теперь сравниваем тяжелый арбуз, что в группе с самым легким и более легкий из другой группы, и определяем второй по легкости (всего 4 взвешивания)Потом взвешиваем оставшиеся арбузы и докладываем их  по порядку (всего 5 взвешивания)
Михайловна991
Берём два арбеза и взвешиваем. Сиавим по возрастанию веса. Например с права на лево. Берём третий арбуз и взвешиваем с самым правым из взвешанных. Если легче, стави ещё правей его, если тяжелей, взвешиваем с левым арбузом. Если легче, ставим посередине, тяжелей - слева. Берём четвёртый арбуз. Взвешиваем с средним. Если легче, взвешиваем с правым арбезом, если легче и этого, ставим правей, если тяжелей - между средним и правым. Если оказался тяжелей среднего, взвешиваем с левым. Если тяжелей левого - ставим в самое лево, если легче - между левым и средним. Максимально должно пять взвешиваний получиться

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Спитоном наибольшее произведение двух чисел дан список, заполненный произвольными целыми числами. найдите в этом списке два числа, абсолютное произведение которых максимально. выведите эти числа в порядке неубывания. решение должно иметь сложность o(n), где n - размер списка. то есть сортировку использовать нельзя. тест 1 входные данные: 4 3 5 2 5 вывод программы: 5 5
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

Olga1233
Егоркина
miyulcha8077
laktionova-natal
jenek-f
ilyushin-e
VadimovichSvetlana622
shef3009
Анатольевич1707
karpovaveronika196
shchepinasm
спец387
Rik200081490
Артур1807
Marina658