[R79B]砝码 - 代码源竞赛平台

时空限制

1S/512M

题目描述

有 nn 个砝码,编号为 1,2,…,n1,2,\ldots,n,其中第 ii 个砝码的重量为 aia_i。不同砝码的重量可以相同。

给定目标重量 ww,你需要选择两个编号不同的砝码,使它们的总重量尽可能接近 ww。

具体地,若选择的两个砝码编号为 i,ji,j,其中 1≤i<j≤n1\le i<j\le n,则它们的总重量为 s=ai+ajs=a_i+a_j,与目标重量的误差为 ∣s−w∣|s-w|。其中,∣x∣|x| 表示 xx 的绝对值:当 x≥0x\ge 0 时,∣x∣=x|x|=x;当 x<0x<0 时,∣x∣=−x|x|=-x。

请在所有选择中,使误差 ∣s−w∣|s-w| 最小。如果有多个总重量都能达到最小误差,取其中最小的总重量。输出最终选定的总重量 ss。

格式

输入格式

第一行包含两个整数 n,wn,w,分别表示砝码的数量和目标重量。

第二行包含 nn 个整数 a1,a2,…,ana_1,a_2,\ldots,a_n,其中 aia_i 表示第 ii 个砝码的重量。

输出格式

输出一行,包含一个整数,表示最终选定的两个砝码的总重量。

样例

样例输入 #1

4 10
2 4 7 9

样例输出 #1

9

样例解释 #1

选择编号为 1,31,3 的砝码,总重量为 99,误差为 11;选择编号为 1,41,4 或 2,32,3 的砝码,总重量为 1111,误差也为 11。

不存在误差为 00 的选择,因此最小误差为 11。在达到最小误差的总重量中,取较小的 99。

样例输入 #2

3 10
5 5 8

样例输出 #2

10

样例解释 #2

选择编号为 1,21,2 的砝码,总重量恰好为 1010。这两个砝码虽然重量相同,但编号不同,可以同时选择。

样例输入 #3

2 5
4 8

样例输出 #3

12

样例解释 #3

只有两个砝码,必须同时选择它们,得到的总重量为 1212。

数据规模

注意:你只有通过了该题目的所有测试点,才能获得分数。

对于 100%100\% 的数据,满足 2≤n≤3002\le n\le 300,1≤w≤1091\le w\le 10^9,1≤ai≤1091\le a_i\le 10^9。