HDU-Array
来源:互联网 发布:恒大淘宝目前市值 编辑:程序博客网 时间:2024/05/24 06:45
点击打开链接
Vitaly has an array of n distinct integers. Vitaly wants to divide this array into three non-empty sets so as the following conditions hold:
- The product of all numbers in the first set is less than zero ( < 0).
- The product of all numbers in the second set is greater than zero ( > 0).
- The product of all numbers in the third set is equal to zero.
- Each number from the initial array must occur in exactly one set.
Help Vitaly. Divide the given array.
The first line of the input contains integer n (3 ≤ n ≤ 100). The second line contains n space-separated distinct integers a1, a2, ..., an (|ai| ≤ 103) — the array elements.
In the first line print integer n1 (n1 > 0) — the number of elements in the first set. Then print n1 numbers — the elements that got to the first set.
In the next line print integer n2 (n2 > 0) — the number of elements in the second set. Then print n2 numbers — the elements that got to the second set.
In the next line print integer n3 (n3 > 0) — the number of elements in the third set. Then print n3 numbers — the elements that got to the third set.
The printed sets must meet the described conditions. It is guaranteed that the solution exists. If there are several solutions, you are allowed to print any of them.
3-1 2 0
1 -11 21 0
4-1 -2 -3 0
1 -12 -3 -21 0
#include <iostream>#include <algorithm>using namespace std;int main(){int t,a[500],b[500],c[500],d[500];while(cin>>t){int e=0,f=0,g=0,h=0;for(int i=0;i<t;i++){cin>>a[i];if(a[i]==0){b[e]=a[i];e++;}else if(a[i]<0){c[f]=a[i];f++;}else{d[g]=a[i];g++;}}if(f==1){cout<<"1"<<" "<<c[0]<<endl;cout<<g;for(int i=0;i<(g-1);i++)cout<<" "<<d[i];cout<<" "<<d[g-1]<<endl;cout<<e;for(int i=0;i<(e-1);i++)cout<<" "<<b[i];cout<<" "<<b[e-1]<<endl;}if(f==2){cout<<"1"<<" "<<c[0]<<endl;cout<<g;for(int i=0;i<(g-1);i++)cout<<" "<<d[i];cout<<" "<<d[g-1]<<endl;cout<<e+1;for(int i=0;i<e;i++)cout<<" "<<b[i];cout<<" "<<c[f-1]<<endl;}if(f%2==0&&f!=2){cout<<"1"<<" "<<c[0]<<endl;cout<<f-2;for(int i=1;i<(f-2);i++)cout<<" "<<c[i];cout<<" "<<c[f-2]<<endl;cout<<e+1+g;for(int i=0;i<g;i++)cout<<" "<<d[i];for(int i=0;i<e;i++)cout<<" "<<b[i];cout<<" "<<c[f-1]<<endl;}if(f%2!=0&&f!=1){cout<<"1"<<" "<<c[0]<<endl;cout<<f-1;for(int i=1;i<(f-1);i++)cout<<" "<<c[i];cout<<" "<<c[f-1]<<endl;cout<<e+g;for(int i=0;i<g;i++)cout<<" "<<d[i];for(int i=0;i<(e-1);i++)cout<<" "<<b[i];cout<<" "<<b[e-1]<<endl;}}return 0;}
- hdu 6197 array array array
- HDU 6197 array array array
- HDU-Array
- 【HDU 6197】array array array 【LIS】
- HDU 1403 Suffix Array
- HDU 5587 Array
- HDU 5587(Array-BigInteger)
- HDU 5587:Array
- hdu 5587 Array
- HDU 5587 Array
- HDU 5587 Array
- HDU 5587 Array
- hdu 5635 LCP Array
- HDU 5635 LCP array
- HDU 5635:LCP Array
- HDU 5635 LCP Array
- hdu 5587 (Array)
- 【HDU 5635 LCP Array】
- linux下ActiveMQ的安装配置二
- Java之数字格式化-yellowcong
- 2017多校 Balala Power!
- PHP快速排序算法
- jquery简单练习题目五个
- HDU-Array
- 回文词
- 4,Swift可变数组的定义,初始化,修改元素值
- 原生js点击ul下边li显示其索引值的”n“种方法
- NodeJS、NPM安装配置步骤(windows版本)
- 明文与密文的转换
- 位扩展和字扩展
- [华为OJ]成绩排序
- Spring boot 自带的Schedule--多实例