编程题
### 问题描述 小明喜欢玩一个叫转转转的游戏,这个游戏将给出 $N$ 张卡牌和一个模数 $M$,每张卡牌上面有一个正整数称为卡片的面值,开始时小明可以选择一个数值 $X$,然后将卡片中面值为 $X$ 或者为 $(X+1)\%M$ 的卡牌给抽走,抽走这张卡牌后,$X$ 值将变为抽走卡牌的面值。假设小明可以无限次根据上述规则抽取卡牌,小明应该如何选择初始 $X$ 值,使得进行若干次抽取后,剩余卡牌面值之和最小?请你给出剩余卡牌面值之和的最小值。 ### 输入格式 输入包括两行,第一行两个正整数 $N$ 和 $M$,代表卡牌的数量。 第二行有 $N$ 个正整数,第 $i$ 个正整数 $a[i]$ 代表第 $i$ 张卡牌的面值。 ### 输出格式 共一行,一个正整数 $Sum$, 代表进行若干次抽取后,剩余卡牌面值之和的最小值。 ### 样例输入 ```text 20 20 1 5 4 7 1 1 15 17 18 16 12 14 15 14 13 11 17 5 9 11 ``` ### 样例输出 ```text 33 ``` ### 评测数据规模 对于所有评测数据,$1\leq N \leq 10^{5} $,$1\leq M \leq 10^{9} $,$1\leq a[i] \lt M $。
查看答案
赣ICP备20007335号-2