Смит
Ограничения: время – 2s/4s, память – 64MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод
Послать решение Blockly Посылки Темы Где Обсудить (0)
Как известно, агент Смит – обычная программа, и, чтобы ее взломать, не нужно делать чего-то
экстраординарного, нужно всего лишь реализовать алгоритм Андерсона. Сам алгоритм очень сложен
в написании, и хоть сколько-нибудь быстрая его работа возможна лишь на серверах Матрицы.
Однако, он основывается на куда более простом алгоритме Томаса, который мы и попросим вас реализовать.
Нам даны `n` чисел, отвечающих за жизнеобеспечение агента. Поскольку некоторые органы
могут быть повреждены, числа могут быть отрицательными. Чтобы вызвать
каскадный резонанс и уничтожить агента, нужно выбрать несколько чисел таким образом, чтобы их произведение было
больше произведения всех остальных.
Нео написал алгоритм, решающий эту задачу, примерно за 10 секунд. Повторите его подвиг.
В первой строке находится число `n` `(2\ ≤\ n\ ≤\ 1000`) – количество
чисел.
Во второй строке находятся `n` целых чисел `a_i` `(-100\ ≤\ a_i\ ≤\ 100`) – числа отвечающие за жизнеобеспечение агента Смита.
В первой строке выведите количество чисел `k` (`1\ ≤\ k\ <\ n`), которые необходимо выбрать.
Во второй строке выведите индексы этих чисел.
Если выбрать числа невозможно, в первой строке выведите сообщение "Impossible".
Пример ввода
5
5 3 -1 15 2
Источник: neerc.ifmo.ru/school