#P2087. 歌曲压缩

歌曲压缩

问题说明

Ivan的电话里有n首歌。第i首歌的大小是ai字节。Ivan还有一个闪存驱动器,最多可容纳M字节。

最初,他的闪存驱动器是空的。

伊凡想把N首歌全部复制到闪存驱动器。

他能压缩歌曲。如果他压缩第i首歌,第i首歌的大小将从ai减少到bi字节(bi<ai)。

Ivan可以压缩歌曲的任何子集(可能是空的),并将所有歌曲复制到他的闪存驱动器(如果它们的大小总和最多为m)。

他可以压缩歌曲的任何子集(不一定是连续的)。

Ivan希望找到他需要压缩的最少歌曲数量,以使所有歌曲都适合驱动器(即大小之和小于或等于m)。

输入格式

输入的第一行包含两个整数n (Ivan手机上的歌曲数)和m(Ivan闪存驱动器的容量)(1≤n≤105,1≤m≤109)

接下来的n行包含两个整数:第i行包含两个整数ai和bi(1≤ai,bi≤109,ai>bi)-第i首歌的初始大小和压缩后第i首歌的大小。

输出格式

如果无法以所有歌曲都适合闪存驱动器的方式压缩歌曲的子集,请打印“-1”。否则,打印要压缩的最少歌曲数。
4 21
10 8
7 4
3 1
5 4
2

来源/分类

队列 优先队列