#Y04003. 文件存储
文件存储
题目描述
小晨 喜欢收集各种有趣的数据和图片。今天,他想将 n 个数据文件拷贝到他的优盘中,每个文件的原始大小为 。为了一次性拷贝所有文件,小晨 可以将文件进行压缩,将文件大小从 变为 。
小晨 的优盘最大容纳空间为 m ,请问他最少需要压缩多少个文件,才能将所有文件拷贝到优盘中。
请你编写一个程序,输入 n 、m 和 n 个文件的大小信息,输出最少需要压缩多少个文件。
输入格式
第一行包含两个整数 n 和 m 。
接下来 n 行,每行包含两个整数 和 ,表示第 i 个文件的原始大小和压缩后的大小。
输出格式
如果无论如何都不能装下所有文件,则输出 -1。
否则,输出一个整数,表示最少所需压缩的文件个数。
4 21
10 8
7 4
3 1
5 4
2
4 16
10 8
7 4
3 1
5 4
-1
说明
【数据范围】
60%测试点满足 $1≤n≤4,1 \le m \le 10^5,1 \le a_i, b_i \leq 10^5,a_i > b_i$。
100%测试点满足 $1 \le n \le 10^5,1 \le m \le 10^9,1 \le a_i, b_i \leq 10^9,a_i > b_i$。
【样例 1 解释】
{10 + 7 + 3 + 5 = 25} 大于容量 21,所以需要压缩。 选择原始容量 7 的压缩成 4 ,再选择原始容量 10 的压缩成 8 ,此时 8 + 4 + 3 + 5 = 20,则能够拷贝到优盘。
【样例 2 解释】
即使每一个文件都进行压缩,总容量为 {8 + 4 + 1 + 4 = 17} 大于 16,压缩后无法拷贝到优盘,所以输出 -1。