QOJ.ac

QOJ

Time Limit: 2 s Memory Limit: 2048 MB Total points: 100

#2640. 安装应用程序

Statistics

Sandra 最近买了她的第一部智能手机。她的一个朋友建议她安装一个很长的应用程序(通常称为“apps”)列表。Sandra 立即开始从列表中安装应用程序,但在安装了几个之后,手机的磁盘空间不足,无法再安装任何应用程序。有时,应用程序安装失败是因为甚至没有足够的空间来下载安装包。其他应用程序虽然可以正常下载,但没有足够的空间来存储已安装的应用程序。

Sandra 安装的每个应用程序都有一个下载大小 $d$ 和一个存储大小 $s$。为了下载该应用程序,Sandra 的手机必须至少有 $d$ 兆字节的可用磁盘空间。应用程序安装完成后,它会在手机上占用 $s$ 兆字节的磁盘空间。下载大小可能小于存储大小(例如,如果应用程序数据经过了高压缩),也可能大于存储大小(例如,如果下载内容包含可能不会被使用的材料,如不同语言的翻译)。安装程序非常高效,可以将下载的安装包转换为已安装的应用程序,而无需使用任何额外的磁盘空间。因此,要安装一个应用程序,手机必须至少有 $\max(d, s)$ 兆字节的可用磁盘空间。

移动无线电话,公有领域

Sandra 很快意识到,她可能仅仅因为安装顺序不对而耗尽了空间。因此,她决定再试一次。她卸载了所有应用程序,现在将选择一个安装顺序,让她能够从列表中安装尽可能多的应用程序。Sandra 不得安装任何应用程序超过一次。

请帮助她确定应该安装列表中的哪些应用程序,以及安装的顺序。

输入格式

输入包含: 一行,包含两个整数 $n, c$ ($1 \le n \le 500, 1 \le c \le 10\,000$),表示可用应用程序的数量和手机的可用磁盘空间(以兆字节为单位)。 $n$ 行,每行包含两个整数 $d, s$ ($1 \le d, s \le 10\,000$),表示一个应用程序的下载大小和存储大小(以兆字节为单位)。

输出格式

输出一行,包含可以安装的应用程序的最大数量。然后输出一行,列出这些应用程序的编号,按照 Sandra 应该安装它们的顺序排列。如果无法安装任何应用程序,则可以省略这一行。

应用程序按照它们在输入中给出的顺序从 $1$ 到 $n$ 进行编号。如果存在多个最优解,输出其中任意一个即可。

样例

样例输入 1

2 100
99 1
1 99

样例输出 1

2
1 2

样例输入 2

2 100
500 1
1 500

样例输出 2

0

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.