CF2039D.Shohag Loves GCD
普及+/提高
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Shohag 拥有一个整数 n 和一个包含 m 个不同整数的集合 S。请帮助他找到字典序最大*的整数数组 a1,a2,…,an,使得对于每个 1≤i≤n 有 ai∈S ,并且满足对所有 1≤i<j≤n 有 agcd(i,j)=gcd(ai,aj)†,或者说明不存在这样的数组。
*一个数组 a 如果在第一个不同的位置上比数组 b 有更大的元素,则称其为字典序大于数组 b(假设两个数组长度相同)。
†gcd(x,y) 表示整数 x 和 y 的最大公约数(GCD)。
输入格式
第一行包含一个整数 t (1≤t≤104) — 测试用例的数量。
每个测试用例的第一行包含两个整数 n 和 m (1≤m≤n≤105)。
每个测试用例的第二行包含 m 个按递增顺序排列的不同整数,表示集合 S 的元素 (1≤x≤n 对于每个 x∈S)。
保证所有测试用例中 n 的总和不超过 3⋅105。
输出格式
对于每个测试用例,如果无解则输出 −1,否则输出 n 个整数 —— 满足条件的字典序最大的整数数组。
输入输出样例
输入#1
3 6 3 3 4 6 1 1 1 2 1 2
输出#1
6 4 4 3 4 3 1 -1
说明/提示
在第一个测试用例中,数组中的每个元素都属于给定的集合 S={3,4,6},并且数组的所有索引对都满足必要的条件。特别是对于对 (2,3),有 agcd(2,3)=a1=6 而 gcd(a2,a3)=gcd(4,4)=4,因此它们不相等。尽管存在其他满足条件的数组,但这个是其中字典序最大的。
在第三个测试用例中,由于我们只能使用数组 a=[2,2],但对于该数组,对于对 (1,2),有 agcd(1,2)=a1=2 而 gcd(a1,a2)=gcd(2,2)=2,因此它们相等,这是不允许的!所以没有解决方案。
输入解题思路,AI测评打分。不知道怎么写?