AT_codefestival_2015_qualA_c 8月31日
Description
[problemUrl]: https://atcoder.jp/contests/code-festival-2015-quala/tasks/codefestival_2015_qualA_c
とある星のとある $ 8 $ 月 $ 31 $ 日のことです。とある星の高橋君はあることに気づいてしまいました。今日で夏休みが終わりであるにもかかわらず、宿題が全く終わっていないのです!
宿題のタイムリミットまではあと $ T $ 分あります。そして、高橋君がやらなければいけない宿題は $ N $ 個あります。$ i $ 番目の宿題を高橋君が解くには $ A_i $ 分かかりますが、高橋君の友達である青木君が解いた宿題を丸写ししてしまうことで $ B_i $ 分で終わらせることもできます。しかし友達の宿題を写すのはあまり良くないことなので、高橋君はできるだけ写さないようにしたいと思っています。
タイムリミットまでに全ての宿題を終わらせるために高橋君が写す必要のある宿題の個数の最小値を出力してください。ただし、全ての宿題を写してもタイムリミットまでに終わらせることができない場合は代わりに `-1` を出力してください。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ T $ $ A_1 $ $ B_1 $ $ A_2 $ $ B_2 $ : $ A_N $ $ B_N $
- $ 1 $ 行目には、$ 2 $ つの整数 $ N\ (1\ ≦\ N\ ≦\ 10^5),\ T\ (0\ ≦\ T\ ≦\ 10^9) $ が空白区切りで与えられる。これは、宿題が $ N $ 個あり、タイムリミットまでの時間が $ T $ 分であることを表す。
- $ 2 $ 行目からの $ N $ 行には、宿題にかかる時間の情報が与えられる。このうち $ i\ (1\ ≦\ i\ ≦\ N) $ 行目には、$ 2 $ つの整数 $ A_i,\ B_i\ (0\ ≦\ B_i\
Output Format
$ T $ 分以内に全ての宿題を終わらせるために高橋君が写す必要のある宿題の個数の最小値を $ 1 $ 行に出力せよ。ただし、全ての宿題を写しても $ T $ 分以内に終わらせることができない場合は代わりに `-1` を出力せよ。出力の末尾に改行を入れること。
Explanation/Hint
### 部分点
この問題には部分点が設定されている。
- $ B_i\ =\ 0 $ を満たすデータセットに正解した場合は、$ 30 $ 点が与えられる。
- 追加の制約のないデータセットに正解した場合は、上記とは別に $ 70 $ 点が与えられる。
### Sample Explanation 1
例えば、$ 2 $ 番目と $ 3 $ 番目の宿題を写せば $ 7(=1+0+0+2+4) $ 分で全ての宿題を終わらせることができます。
### Sample Explanation 2
宿題を写さなくてもタイムリミットに間に合います。
### Sample Explanation 3
宿題を写してもタイムリミットに間に合いません。