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;
}
相关推荐
轻抚酸~9 小时前
KNN(K近邻算法)-python实现
python·算法·近邻算法
Yue丶越11 小时前
【C语言】字符函数和字符串函数
c语言·开发语言·算法
小白程序员成长日记11 小时前
2025.11.24 力扣每日一题
算法·leetcode·职场和发展
有一个好名字11 小时前
LeetCode跳跃游戏:思路与题解全解析
算法·leetcode·游戏
AndrewHZ12 小时前
【图像处理基石】如何在图像中提取出基本形状,比如圆形,椭圆,方形等等?
图像处理·python·算法·计算机视觉·cv·形状提取
蓝牙先生12 小时前
简易TCP C/S通信
c语言·tcp/ip·算法
xiaoye-duck14 小时前
计数排序:高效非比较排序解析
数据结构
稚辉君.MCA_P8_Java16 小时前
Gemini永久会员 Java中的四边形不等式优化
java·后端·算法
稚辉君.MCA_P8_Java16 小时前
通义 插入排序(Insertion Sort)
数据结构·后端·算法·架构·排序算法
无限进步_17 小时前
C语言动态内存的二维抽象:用malloc实现灵活的多维数组
c语言·开发语言·数据结构·git·算法·github·visual studio