001 - 破壊の果実
時間制限 1 秒 / メモリ制限 64 MB / 得点 100 / x 7 /
問題
ある日、YTAくんのもとに1通の手紙が届きました。そこにはこう書かれていました。
「明日、地球に隕石が降ってくる。隕石が衝突すると地球は消滅するだろう。どうかこの隕石を破壊してくれないか?」
YTAくんは地球を守りたいです。しかし困ったことがあります。YTAくんは破壊なんて大それたことを今までに行ったことがありません。そこで、YTAくんはDr.YDKのもとを訪れました。
Dr.YDK「隕石を破壊?あんなの一瞬だろ。なに、今までに破壊をしたことがない?それでは仕方あるまい。最近開発した破壊の果実を食べるとよい。全部でN個ありi番目の果実を食べると破壊力がAiアップするぞ」
Dr.YDKの調査で隕石は破壊力がXくらいあれば破壊できることが分かっています。破壊力があまりにも少なすぎると破壊できませんが、逆に多すぎるとほかの星々まで破壊してしまいます。最初YTAくんの破壊力は0ですが、いくつかの果実を食べることによって破壊力をXに近づけたいと思っています。それで、YTAくんが適切に果実を食べた際(1個も食べなくても良い)、Xとの差の絶対値の最小値を求めてください。
入力
入力は以下の形式で行われる。
N X A1 A2 ... AN1行目には果実の数Nと隕石を破壊するのに最適な破壊力Xが与えられる。 2行目には各果実を食べた時に増加する破壊力Aiが1行にわたって与えられる。
出力
適切に果実を食べた際のXとの差の絶対値の最小値を1行に出力せよ。制約
1 ≦ N ≦ 20
1 ≦ X ≦ 109
1 ≦ Ai ≦ 109
入出力例
入力例1
6 10 1 2 5 6 12 16
出力例1
1
この場合、たとえば果実1,2,4を食べるとYTAくんの破壊力は9になり、差は1となります。どのような組み合わせでも破壊力を10にすることはできないのでこれが最適です。
入力例2
5 10 100 200 300 400 500
出力例2
10
この場合、何も食べない状態が最適です。
入力例3
6 10 1 3 5 7 11 13
出力例3
0