問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!
A 君は遠足に持っていくお菓子を買います。
売っているお菓子は N 種類あり、i 番目のお菓子の値段は x_i 円です。
A 君が使えるお金は X 円で、合計金額が X 円を超えないように買わなければなりません。
同じお菓子を複数買うことはできません。
この part では、A 君は ちょうど K 種類のお菓子を買うことにします。
合計金額が X 円以内となるように K 種類を選んだとき、お釣りが最小になる場合のお釣りを求めてください。
なお、少なくとも 1 通りは条件を満たす選び方が存在します。
入力は以下のフォーマットで与えられます。
N X K
x_1
x_2
...
x_N
* 1 行目に、選択できるお菓子の種類数、使える金額、ちょうど買う種類数を表す整数 N, X, K がこの順で半角スペース区切りで与えられます。
* 続く N 行のうちの i 行目 (1 ≦ i ≦ N) には、i 番目のお菓子の値段を表す整数 x_i が与えられます。
* 入力は合計で N + 1 行となり、入力値最終行の末尾に改行が 1 つ入ります。
合計金額が X 円以内となるようにちょうど K 種類選ぶとき、お釣りが最小になる場合のお釣りを整数で出力してください。
末尾に改行を入れ、余計な文字、空行を含んではいけません。
すべてのテストケースにおいて、以下の条件をみたします。
* 1 ≦ N ≦ 20
* 0 < X ≦ 5000
* 1 ≦ K ≦ N
* 0 < x_i < 5000 (1 ≦ i ≦ N)
* 合計金額が X 円以内となるように、ちょうど K 種類選べる方法が少なくとも 1 つ存在する
3 4 1
3
4
5
0
3 4 1
5
3
4
0