printРабочее место участника


1802. Jack

Ограничения: время – 1s/2s, память – 64MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0)

In "Blackjack", a popular card game, the goal is to have cards which sum up to largest number not exceeding 21. Mirko came up with his own version of this game.
In Mirko's game, cards have positive integers written on them. The player is given a set of cards and an integer `M`. He must choose three cards from this set so that their sum comes as close as possible to `M` without exceeding it. This is not always easy since there can be a hundred of cards in the given set. Help Mirko by writing a program that finds the best possible outcome of given game.
The first line of input contains an integer `N` (`3\ ≤\ N\ ≤\ 100`), the number of cards, and `M` (`10\ ≤\ M\ ≤\ 300\ 000`), the number that we must not exceed.
The following line contains numbers written on Mirko's cards: `N` distinct space-separated positive integers less than `100\ 000`. There will always exist some three cards whose sum is not greater than `M`.
The first and only line of output should contain the largest possible sum we can obtain.

Sample Input #1

5 21
5 6 7 8 9

Sample Output #1


Sample Input #2

10 500
93 181 245 214 315 36 185 138 216 295

Sample Output #2

Source: COCI 2011/2012