Олимпиадный тренинг

Задача . A. Массив


У Виталия есть массив из n различных целых чисел. Виталий хочет разделить этот массив на три непустых множества так, чтобы были выполнены условия:

  1. Значение произведения всех чисел в первом множестве было меньше нуля ( < 0).
  2. Значение произведения всех чисел во втором множестве было больше нуля ( > 0).
  3. Произведение всех чисел в третьем множестве было равно нулю.
  4. Каждое число из исходного массива должно находиться ровно в одном из множеств.

Помогите Виталию. Разделите заданный массив.

Входные данные

В первой строке входных данных записано целое число n (3 ≤ n ≤ 100). Во второй строке через пробел записаны n различных целых чисел a1, a2, ..., an (|ai| ≤ 103) — элементы массива.

Выходные данные

В первой строке выведите целое число n1 (n1 > 0) — количество чисел в первом множестве. Далее выведите n1 чисел — числа, которые попали в первое множество.

В следующей строке выведите целое число n2 (n2 > 0) — количество чисел во втором множестве. Далее выведите n2 чисел — числа, которые попали во второе множество.

В следующей строке выведите целое число n3 (n3 > 0) — количество чисел в третьем множестве. Далее выведите n3 чисел — числа, которые попали в третье множество.

Выведенные множества должны удовлетворять описанным условиям. Гарантируется, что решение существует. Если существует несколько решений, разрешается вывести любое.


Примеры
Входные данныеВыходные данные
1 3
-1 2 0
1 -1
1 2
1 0
2 4
-1 -2 -3 0
1 -1
2 -3 -2
1 0

time 2000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя