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;
}
相关推荐
小O的算法实验室11 小时前
2026年ASOC,基于深度强化学习的无人机三维复杂环境分层自适应导航规划方法,深度解析+性能实测
算法·无人机·论文复现·智能算法·智能算法改进
‎ദ്ദിᵔ.˛.ᵔ₎11 小时前
LIST 的相关知识
数据结构·list
M--Y11 小时前
Redis常用数据类型
数据结构·数据库·redis
郭涤生12 小时前
STL vector 扩容机制与自定义内存分配器设计分析
c++·算法
༾冬瓜大侠༿12 小时前
vector
c语言·开发语言·数据结构·c++·算法
Ricky111zzz12 小时前
leetcode学python记录1
python·算法·leetcode·职场和发展
汀、人工智能12 小时前
[特殊字符] 第58课:两个正序数组的中位数
数据结构·算法·数据库架构··数据流·两个正序数组的中位数
liu****12 小时前
第16届省赛蓝桥杯大赛C/C++大学B组(京津冀)
开发语言·数据结构·c++·算法·蓝桥杯
汀、人工智能12 小时前
[特殊字符] 第79课:分割等和子集
数据结构·算法·数据库架构·位运算·哈希表·分割等和子集
汀、人工智能13 小时前
[特殊字符] 第74课:完全平方数
数据结构·算法·数据库架构·图论·bfs·完全平方数