题目描述
你面临一个简单任务. 给n个物品,第i个物品价值 a[i],挑出其中一个子集,使子集中物品价值之和在 modp 意义下最大。
输入格式
- 第一行:2 个整数 n 和 p。
- 第二行:n 个非负整数 ai。
输出格式
输出 1 个整数,代表 modp 下能得到的最大子集价值。
样例输入1
4 4
5 2 4 1
样例输出1
3
样例输入2
5 233
123 456 789 12 15
样例输出2
230
提示
一共有10个测试点
- 对于测试点 1−2: n≤20,p≤100.
- 对于测试点 3−5: n≤100,p≤2×105.
- 对于测试点 6−7: n≤25,p≤109.
- 对于测试点 8−10: n≤36,p≤109.
- 对于 100% 的数据: n≤100,ai,p≤109。
特别注意本题 8−10 测试点的范围并非最大的。