#P16981. [NWERC 2017] Installing Apps
[NWERC 2017] Installing Apps
背景
译自 Northwestern Europe Regional Contest (NWERC) 2017 Problem I。
原题许可协议为 CC BY-SA。
题目描述
Sandra 最近买了她的第一部智能手机。她的一位朋友给了她一长串建议安装的应用程序(通常称为 “apps”)。Sandra 立刻开始按照列表安装这些应用,但安装了几个之后,手机就没有足够的磁盘空间继续安装更多应用了。有时,安装失败是因为连安装包都没有足够空间下载;另一些应用能够下载成功,但没有足够空间存储安装后的应用。
Sandra 安装的每个应用都有下载大小 和存储大小 。为了下载这个应用,Sandra 的手机必须至少有 MB 的可用磁盘空间。安装完成后,这个应用会在手机上占用 MB 的磁盘空间。下载大小可能小于存储大小(例如应用数据被高度压缩),也可能大于存储大小(例如下载内容包含一些可能不会被使用的材料,比如不同语言的翻译)。安装器非常高效,可以在不使用额外磁盘空间的情况下把下载包转换成已安装应用。因此,要安装一个应用,手机必须至少有 MB 的可用磁盘空间。
Sandra 很快意识到,她可能只是因为安装顺序错误才导致空间不够。于是,她决定重新尝试。她卸载了所有应用,现在将选择一个安装顺序,使她能够从列表中安装尽可能多的应用。Sandra 不能重复安装同一个应用。
请帮助她确定应该安装列表中的哪些应用,以及安装顺序。
输入格式
输入包含:
- 一行两个整数 (,),分别表示可选应用数量和手机可用磁盘空间(单位:MB)。
- 接下来 行,每行两个整数 (),表示一个应用的下载大小和存储大小(单位:MB)。
输出格式
第一行输出最多可以安装的应用数量。
第二行输出这些应用的编号,并按 Sandra 应当安装它们的顺序排列。如果没有任何应用可以安装,则这一行可以省略。
应用按输入顺序从 到 编号。如果存在多种最优方案,输出任意一种即可
2 100
99 1
1 99
2
1 2
2 100
500 1
1 500
0
提示
【数据规模与约定】
对于所有数据,满足 ,,。如果有多种最优方案,输出任意一种即可。