#B4515. [四川青少年 C++ 算法设计大赛 2025] 圆度

    ID: 18242 远端评测题 1000ms 1024MiB 尝试: 0 已通过: 0 难度: 5 上传者: 标签>动态规划 DP四川2025背包 DP进制科创活动小学活动

[四川青少年 C++ 算法设计大赛 2025] 圆度

题目描述

我们把一个数的 6 6 -roundness 值定义为它在 6 6 进制下末尾 0 0 的个数。

给你一个长度为 n n 的数列,要求你从中选出 k k 个数,使得这些选出的数的积的 6 6 -roundness 值最大。

输入格式

第一行包括两个正整数 n n k k

第二行包括 n n 个空白分隔的数 a1,a2,,an a_1, a_2, \dots, a_n

输出格式

输出一个整数,是选择 k k 个数并作积的最大 6 6 -roundness 值。

3 2
18 4 12
3
5 3
9 16 3 9 9
4
3 3
9 77 13
0

提示

【样例 1 解释】

在第一个例子中,有三种选法。

{18,4} \{18, 4\} 的积是 (200)6 (200)_6 6 6 -roundness 值是 2 2

{4,12} \{4, 12\} 的积是 (120)6 (120)_6 6 6 -roundness 值是 1 1

{18,12} \{18, 12\} 的积是 (1000)6 (1000)_6 6 6 -roundness 值是 3 3

【样例 2 解释】

第二个例子中选法 {9,16,9} \{9, 16, 9\} 的积是 (10000)6 (10000)_6 6 6 -roundness 值是 4 4

【样例 3 解释】

第三个例子中所有的选法的积的 6 6 -roundness 值都是 0 0

【子任务】

::cute-table{tuack} | 测试点编号 | n n | k k | ai a_i | |:-:|:-:|:-:|:-:| | 121 \sim 2 | 200 \leq 200 | 100 \leq 100 | 一定可以被表示为 6 6 的幂次 | | 33 | ^ | ^ | 在 {2,3,6} \{2, 3, 6\} 中取值 | | 44 | =10 = 10 | =5 = 5 | 任意 k k ai a_i 之积不超过 1018 10^{18} | | 55 | =25 = 25 | =12 = 12 | 只含有质因子 2 2 或质因子 3 3 | | 66 | ^ | ^ | 只含有质因子 2 2 和质因子 3 3 | | 77 | ^ | ^ | 无限制 | | 88 | 200 \leq 200 | 100 \leq 100 | ^ | | 99 | ^ | ^ | ^ | | 1010 | ^ | ^ | ^ |

对于 100% 100\% 的数据,1n200 1 \leq n \leq 200 1k100 1 \leq k \leq 100 2ai109 2 \leq a_i \leq 10^9