A. United We Stand

time limit per test

1 second

memory limit per test

256 megabytes

input

standard input

output

standard output

Given an array a� of length n�, containing integers. And there are two initially empty arrays b� and c�. You need to add each element of array a� to exactly one of the arrays b� or c�, in order to satisfy the following conditions:

  • Both arrays b� and c� are non-empty. More formally, let lb�� be the length of array b�, and lc�� be the length of array c�. Then lb,lc≥1��,��≥1.
  • For any two indices i� and j� (1≤i≤lb,1≤j≤lc1≤�≤��,1≤�≤��), cj�� is not a divisor of bi��.

Output the arrays b� and c� that can be obtained, or output −1−1 if they do not exist.

Input

Each test consists of multiple test cases. The first line contains a single integer t� (1≤t≤5001≤�≤500) --- the number of test cases. The description of the test cases follows.

The first line of each test case contains a single integer n� (2≤n≤1002≤�≤100) --- the length of array a�.

The second line of each test case contains n� integers a1,a2,...,an�1,�2,...,�� (1≤ai≤1091≤��≤109) --- the elements of array a�.

Output

For each test case, output a single integer −1−1 if a solution does not exist.

Otherwise, in the first line, output two integers lb�� and lc�� --- the lengths of arrays b� and c� respectively.

In the second line, output lb�� integers b1,b2,...,blb�1,�2,...,��� --- the elements of array b�.

In the third line, output lc�� integers c1,c2,...,clc�1,�2,...,��� --- the elements of array c�.

If there are multiple solutions, output any of them. You can output the elements of the arrays in any order.

Example

input

Copy

复制代码

5

3

2 2 2

5

1 2 3 4 5

3

1 3 5

7

1 7 7 2 9 1 4

5

4 8 12 12 4

output

Copy

复制代码
-1
3 2
1 3 5 
2 4 
1 2
1 
3 5 
2 5
1 1 
2 4 7 7 9 
3 2
4 8 4 
12 12 

Note

In the first test case, a solution does not exist.

In the second test case, we can obtain b=[1,3,5]�=[1,3,5] and c=[2,4]�=[2,4]. Then elements 22 and 44 do not divide elements 1,31,3 and 55.

In the fifth test case, we can obtain b=[4,8,4]�=[4,8,4] and c=[12,12]�=[12,12].

解题说明:水题,对数列排序,只要让数列a中的最小值放入数列b,其他值都放入数列c中就可以,前提是数列a不是同一个数。

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;

int main()
{
	int t;
	cin >> t;
	while (t--)
	{
		int n;
		cin >> n;
		int a[n];
		for (int i = 0; i < n; i++)
		{
			cin >> a[i];
		}
		sort(a, a + n);
		if (a[0] == a[n - 1])
		{
			cout << -1 << endl;
		}
		else
		{
			int i = 1;
			while (a[i] == a[0])
			{
				i++;
			}
			cout << i << ' ' << n - i << endl;
			for (int j = 0; j < i; j++)
			{
				cout << a[j] << ' ';
			}
			cout << endl;
			for (int j = i; j < n; j++)
			{
				cout << a[j] << ' ';
			}
			cout << endl;
		}
	}
	return 0;
}
相关推荐
草莓啵啵~23 分钟前
搜索二叉树-key的搜索模型
数据结构·c++
爱研究的小陈1 小时前
Day 3:数学基础回顾——线性代数与概率论在AI中的核心作用
算法
渭雨轻尘_学习计算机ing1 小时前
二叉树的最大宽度计算
算法·面试
丶Darling.1 小时前
26考研 | 王道 | 数据结构 | 第八章 排序
数据结构·考研·排序算法
BB_CC_DD1 小时前
四. 以Annoy算法建树的方式聚类清洗图像数据集,一次建树,无限次聚类搜索,提升聚类搜索效率。(附完整代码)
深度学习·算法·聚类
我也不曾来过12 小时前
list底层原理
数据结构·c++·list
梁下轻语的秋缘3 小时前
每日c/c++题 备战蓝桥杯 ([洛谷 P1226] 快速幂求模题解)
c++·算法·蓝桥杯
CODE_RabbitV3 小时前
【深度强化学习 DRL 快速实践】逆向强化学习算法 (IRL)
算法
mit6.8244 小时前
[贪心_7] 最优除法 | 跳跃游戏 II | 加油站
数据结构·算法·leetcode
keep intensify4 小时前
通讯录完善版本(详细讲解+源码)
c语言·开发语言·数据结构·算法