307742: CF1407B. Big Vova

Memory Limit:256 MB Time Limit:1 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

Big Vova

题意翻译

* 输入一个长为 $n$ 的数组 $a$ ,你需要对 $a$ 重新排序得到数组 $b$ ,定义数组 $c_i $ 的值为 $gcd(b_1,b_2,b_3.....b_i)$ * 你重排后得到的数组 $b$ ,需要满足对应计算出的数组 $c$ 的字典序最大,并输出这个 $b$ * 数组 $a$ 的字典序小于数组 $b$ 定义为存在一个 $i<n$ ,使得 $1<=j<i,a_j=b_j$ ,而 $a_i<b_i$ * 如果有多组解,输出一个即可 读入格式: 第一行一个整数 $T$ 表示测试数据组数 接下来 $T$ 组数据,每组开头一个整数 $n$ 表示读入的数组 $a$ 长度 然后 $n$ 个数表示数组 $a$ 输出数据: 共 $T$ 行,每行为对应数据的数组 $ b $

题目描述

Alexander is a well-known programmer. Today he decided to finally go out and play football, but with the first hit he left a dent on the new Rolls-Royce of the wealthy businessman Big Vova. Vladimir has recently opened a store on the popular online marketplace "Zmey-Gorynych", and offers Alex a job: if he shows his programming skills by solving a task, he'll work as a cybersecurity specialist. Otherwise, he'll be delivering some doubtful products for the next two years. You're given $ n $ positive integers $ a_1, a_2, \dots, a_n $ . Using each of them exactly at once, you're to make such sequence $ b_1, b_2, \dots, b_n $ that sequence $ c_1, c_2, \dots, c_n $ is lexicographically maximal, where $ c_i=GCD(b_1,\dots,b_i) $ - the greatest common divisor of the first $ i $ elements of $ b $ . Alexander is really afraid of the conditions of this simple task, so he asks you to solve it. A sequence $ a $ is lexicographically smaller than a sequence $ b $ if and only if one of the following holds: - $ a $ is a prefix of $ b $ , but $ a \ne b $ ; - in the first position where $ a $ and $ b $ differ, the sequence $ a $ has a smaller element than the corresponding element in $ b $ .

输入输出格式

输入格式


Each test contains multiple test cases. The first line contains the number of test cases $ t $ ( $ 1 \le t \le 10^3 $ ). Description of the test cases follows. The first line of each test case contains a single integer $ n $ ( $ 1 \le n \le 10^3 $ ) — the length of the sequence $ a $ . The second line of each test case contains $ n $ integers $ a_1,\dots,a_n $ ( $ 1 \le a_i \le 10^3 $ ) — the sequence $ a $ . It is guaranteed that the sum of $ n $ over all test cases does not exceed $ 10^3 $ .

输出格式


For each test case output the answer in a single line — the desired sequence $ b $ . If there are multiple answers, print any.

输入输出样例

输入样例 #1

7
2
2 5
4
1 8 2 3
3
3 8 9
5
64 25 75 100 50
1
42
6
96 128 88 80 52 7
5
2 4 8 16 17

输出样例 #1

5 2 
8 2 1 3 
9 3 8 
100 50 25 75 64 
42 
128 96 80 88 52 7 
17 2 4 8 16

说明

In the first test case of the example, there are only two possible permutations $ b $ — $ [2, 5] $ and $ [5, 2] $ : for the first one $ c=[2, 1] $ , for the second one $ c=[5, 1] $ . In the third test case of the example, number $ 9 $ should be the first in $ b $ , and $ GCD(9, 3)=3 $ , $ GCD(9, 8)=1 $ , so the second number of $ b $ should be $ 3 $ . In the seventh test case of the example, first four numbers pairwise have a common divisor (a power of two), but none of them can be the first in the optimal permutation $ b $ .

Input

题意翻译

* 输入一个长为 $n$ 的数组 $a$ ,你需要对 $a$ 重新排序得到数组 $b$ ,定义数组 $c_i $ 的值为 $gcd(b_1,b_2,b_3.....b_i)$ * 你重排后得到的数组 $b$ ,需要满足对应计算出的数组 $c$ 的字典序最大,并输出这个 $b$ * 数组 $a$ 的字典序小于数组 $b$ 定义为存在一个 $i<n$ ,使得 $1<=j<i,a_j=b_j$ ,而 $a_i<b_i$ * 如果有多组解,输出一个即可 读入格式: 第一行一个整数 $T$ 表示测试数据组数 接下来 $T$ 组数据,每组开头一个整数 $n$ 表示读入的数组 $a$ 长度 然后 $n$ 个数表示数组 $a$ 输出数据: 共 $T$ 行,每行为对应数据的数组 $ b $

加入题单

算法标签: