测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A11422. Maximum Subsequence

编程题 普及/提高-

题目描述

给定一个包含 $n$ 个整数的数组 $a$,以及一个整数 $m$。你需要选择一些下标组成序列 $b_1, b_2, \dots, b_k$($1 \le b_1 < b_2 < \dots < b_k \le n$),使得以下值最大化:

$$ \left( \sum_{i=1}^{k} a_{b_i} \right) \bmod m $$

可以选择空序列(此时和为 $0$)。

输出这个最大可能值。

输入格式

第一行包含两个整数 $n$ 和 $m$($1 \le n \le 35$,$1 \le m \le 10^9$)。

第二行包含 $n$ 个整数 $a_1, a_2, \dots, a_n$($1 \le a_i \le 10^9$)。

输出格式

输出一个整数,表示最大可能值。

输入输出样例

输入 #1
4 4
5 2 4 1
输出 #1
3
输入 #2
3 20
199 41 299
输出 #2
19

说明/提示

## 样例解释

**样例 1:** 选择下标 $b = \{1, 2\}$,和为 $5 + 2 = 7$,$7 \bmod 4 = 3$。

**样例 2:** 选择下标 $b = \{3\}$,和为 $299$,$299 \bmod 20 = 19$。

---

## 数据范围

对于 $100\%$ 的数据,$1 \le n \le 35$,$1 \le m \le 10^9$,$1 \le a_i \le 10^9$。
上一题 去做题 下一题