atcoder#ARC070B. [ABC056D] No Need

[ABC056D] No Need

配点 : 600600

問題文

シカのAtCoDeerくんは正整数が書かれたカードを NN 枚持っています。i(1iN)i(1 \leq i \leq N) 枚目に書かれている数は aia_i です。 AtCoDeerくんは大きい数が好きなので、カードに書かれた数の総和が KK 以上になるようなカードの部分集合をよい集合と呼びます。

そして、各カード ii に対して、そのカードが不必要かどうかを次のように判定します。

  • 「カード ii を含む任意のよい集合に対して、その集合からカード ii を除いたものもよい集合」 ならカード ii不必要
  • それ以外の場合は、不必要でない

不必要なカードの枚数を求めてください。ただし、それぞれの判定は独立に行われ、不必要だからと言ってカードが途中で捨てられたりすることはありません。

制約

  • 入力は全て整数
  • 1N50001 \leq N \leq 5000
  • 1K50001 \leq K \leq 5000
  • 1ai109(1iN)1 \leq a_i \leq 10^9 (1 \leq i \leq N)

部分点

  • N,K400N,K \leq 400 を満たすデータセットに正解した場合は、部分点として 300300 点が与えられる。

入力

入力は以下の形式で標準入力から与えられる。

NN KK

a1a_1 a2a_2 ... aNa_N

出力

不必要なカードの枚数を出力せよ。

3 6
1 4 3
1

よい集合は {2,32,3} と {1,2,31,2,3} の二つです。

カード 11 を含むよい集合は {1,2,31,2,3} しかなく、これから 11 を取り除いた {2,32,3} もよい集合なので、カード 11 は不必要です。

また、よい集合である {2,32,3} から 22 を取り除いた集合 {33} はよい集合ではないため、カード 22 は不必要ではありません。

カード 33 も同様に不必要ではないため、答えは 11 です。

5 400
3 1 4 1 5
5

この場合よい集合は存在しないため、全てのカードは不必要となります。

6 20
10 4 3 10 25 2
3