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$