#4487. Max Multiple

0

Max Multiple

Max Multiple

题目描述

你被给定一个非负整数序列 A=(a1,a2,…,aN)A=(a_1,a_2,\ldots,a_N)。 令 SS 为可以成为从 AA 中选出 KK 个项(索引互不相同)之和的非负整数集合。 找出 SS 中最大的 DD 的倍数。如果 SS 中不存在 DD 的倍数,则输出 −1-1。

输入格式

输入从标准输入按以下格式给出: NN KK DD a1a_1 …\ldots aNa_N

输出格式

输出答案。

4 2 2
1 2 3 4
6
3 1 2
1 3 5
-1

提示

1≤K≤N≤1001 \leq K \leq N \leq 100 1≤D≤1001 \leq D \leq 100 0≤ai≤1090 \leq a_i \leq 10^9 输入中的所有值均为整数。下面列出了从 AA 中选择两个项的所有方式。

选择 a1a_1 和 a2a_2,它们的和是 1+2=31+2=3。 选择 a1a_1 和 a3a_3,它们的和是 1+3=41+3=4。 选择 a1a_1 和 a4a_4,它们的和是 1+4=51+4=5。 选择 a2a_2 和 a3a_3,它们的和是 2+3=52+3=5。 选择 a2a_2 和 a4a_4,它们的和是 2+4=62+4=6。 选择 a3a_3 和 a4a_4,它们的和是 3+4=73+4=7。

因此,我们有 S={3,4,5,6,7}S=\{3,4,5,6,7\}。SS 中最大的 22 的倍数是 66,所以你应当输出 66。
在这个例子中,我们有 S={1,3,5}S=\{1,3,5\}。SS 中没有 22 的倍数,所以你应当输出 −1-1。

标签: AtCoder|abc281D

来源

AtCoder|abc281D