P8663 [蓝桥杯 2018 省 A] 倍数问题

题目描述

众所周知,小葱同学擅长计算,尤其擅长计算一个数是否是另外一个数的倍数。但小葱只擅长两个数的情况,当有很多个数之后就会比较苦恼。现在小葱给了你 $n$ 个数,希望你从这 $n$ 个数中找到三个数,使得这三个数的和是 $K$ 的倍数,且这个和最大。数据保证一定有解。

输入格式

从标准输入读入数据。 第一行包括 $2$ 个正整数表示 $n$ 和 $K$。 第二行 $n$ 个正整数,代表给定的 $n$ 个数。

输出格式

输出一行一个整数代表所求的和。

说明/提示

**【样例解释】** 选择 $2$、$3$、$4$。 **【数据约定】** 对于 $30\%$ 的数据,$n \le 100$。 对于 $60\%$ 的数据,$n \le 1000$。 对于另外 $20\%$ 的数据,$K \le 10$。 对于 $100\%$ 的数据,$1 \le n \le 10^5$,$1 \le K \le 10^3$,给定的 $n$ 个数均不超过 $10^8$。 时限 1 秒,256M。蓝桥杯 2018 年第九届省赛。