CF703E Mishka and Divisors
题目描述
在玩完美丽的数列后, $Mishka$ 决定学习一些数学。现在她已经学习了乘法,除法和除数的定义,并对以下问题很感兴趣。
对于给定的正整数 $k$ 和长度为 $n$ 的数列 $a$ ,求出在所有元素乘积能被 $k$ 整除的情况下,所含元素最少的非空子集
换句话说,在数组 $a$ 中选出 $m$ 个数,使它们的乘积能被 $k$ 整除,并最小化 $m$ $(m≠0)$
如果有多种符合要求的选择,取所选元素总和最小的一种
输入格式
第一行两个正整数 $n$ 和 $k$ $(1≤n≤1000 , 1≤k≤10^{12})$
第二行 $n$ 个正整数,即数列 $a$ $( 1≤a_{i}≤10^{12} ) $
输出格式
第一行一个正整数 $m$ ,即所选非空子集的元素个数
第二行输出 $m$ 个正整数,即所选元素在数组 $a$ 中的下标(题目没说明顺序,但看样例是降序)
如果有多种选择( $m$ 最小且元素总和最小),输出任意一种
如果没有总乘积能被 $k$ 整除的非空子集,仅输出 $-1$