print2046. Смит

printСмит

Ограничения: время – 2s/4s, память – 64MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение 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

Пример вывода

1
1
Источник: neerc.ifmo.ru/school
loading