问题 4903 --一锐分数堆

4903: 一锐分数堆★★

时间限制: 1 Sec  内存限制: 128 MB
提交: 64  解决: 26
[提交][状态][命题人:]

题目描述

一锐有n个互不相等的数,他现在想把这些数分为三堆,每堆至少要有一个数,并且要满足下面几个条件:

1)第一堆中所有数的乘积结果小于0( < 0).

2)第二堆中所有数的乘积结果大于0 ( > 0).

3)第三堆中所有数的乘积结果等于0.

4)每个数必须在上述三个堆中的其中一个.

输入

第一行为整数n(3 ≤ n ≤ 100)

第二行为n个空格隔开的整数,每个数的绝对值小于等于1000

输出

第一行的第一个数为一个整数n1>0,表示第一堆中数的数量;后面跟着n1个数,表示第一堆中的数

第二行的第一个数为一个整数n2>0,表示第二堆中数的数量;后面跟着n2个数,表示第二堆中的数

第三行的第一个数为一个整数n3>0,表示第三堆中数的数量;后面跟着n3个数,表示第三堆中的数

答案肯定存在,如果不唯一,输出其中任何一组满足上述要求的即可

样例输入
Copy
3
-1 2 0
样例输出
Copy
1 -1
1 2
1 0

提示

样例2输入

4
-1 -2 -3 0

样例2输出

1 -1
2 -3 -2
1 0

来源

[提交][状态]