CF300A.Array

传统题 时间 2000 ms 内存 256 MiB 5 尝试 1 已通过 1 标签

Array

题目描述

Vitaly 有一个包含 nn 个互不相同整数的数组。Vitaly 想要将该数组分成三个非空集合,使得满足以下条件:

  1. 第一个集合中所有数字的乘积小于零(<0<0)。
  2. 第二个集合中所有数字的乘积大于零(>0>0)。
  3. 第三个集合中所有数字的乘积等于零。
  4. 初始数组中的每个数字必须恰好属于一个集合。

请帮助 Vitaly,将给定数组进行划分。

输入格式

第一行输入一个整数 nn,满足 3n1003 \leq n \leq 100
第二行输入 nn 个用空格分隔的互不相同的整数 a1,a2,...,ana_{1},a_{2},...,a_{n},满足 ai103|a_{i}| \leq 10^{3}——即数组中的元素。

输出格式

第一行输出一个整数 n1n_{1}n1>0n_{1}>0)——第一个集合中的元素个数。紧接着输出 n1n_{1} 个属于第一个集合的数组元素。

第二行输出一个整数 n2n_{2}n2>0n_{2}>0)——第二个集合中的元素个数。紧接着输出 n2n_{2} 个属于第二个集合的数组元素。

第三行输出一个整数 n3n_{3}n3>0n_{3}>0)——第三个集合中的元素个数。紧接着输出 n3n_{3} 个属于第三个集合的数组元素。

输出的集合必须满足所描述的条件。保证输入数据有解。如果有多种方案,可以输出任意一种。

说明/提示

由 ChatGPT 5 翻译

样例

3
-1 2 0
1 -1
1 2
1 0
4
-1 -2 -3 0
1 -1
2 -3 -2
1 0

在线编程 IDE

建议全屏模式获得最佳体验