蜗蜗有一个神奇的口袋,口袋可以装下体积总和为 m 的宝石。
一共有 n+1 种不同的宝石。第 i (1≤i≤n) 种宝石一共有 ai 颗,每一颗的体积都是 bi。第 n+1 种宝石有无限多颗,每一颗的体积都是 1。
现在蜗蜗想用数量最少的宝石装满口袋,请求出蜗蜗最少要使用多少颗宝石。
输入格式
第一行一个正整数 test 表示数据组数。
对于每组数据,第一行两个整数 n,m。接下来 n 行,每行两个整数 ai,bi 分别表示一种宝石的数量和体积。
输出格式
对于每组数据,输出一行一个整数,表示蜗蜗最少要使用多少颗宝石。
样例输入
2
2 7
1 2
1 4
2 6
1 2
1 4
样例输出
3
2
数据规模
对于 30% 的数据,保证所有的 ai=1。
对于 100% 的数据,保证 1≤test≤10^5,1≤n≤31,0≤m<2^31,1≤ai<2^31,2≤bi<2^31,bi 已经从小到大排好序了并且两两不同。
C++
这题目有点难,能否帮帮我