第 1 题 程序 (programy)
时间限制 12 s · 空间限制 512 MB · 37 个测试点 · 全文比较(过滤行末空格及文末回车)
本题使用文件输入输出:输入文件 programy.in,输出文件 programy.out。
XV OIJ(波兰信息学奥赛 J 组)— 第一阶段,公开轮
- 时间限制:12 秒
- 内存限制:512 MB
题目描述
Bajtazar 正在换电脑,必须把当前的软件从旧电脑搬到新电脑上。由于他从事的工作要求特别注意安全,把程序上传到云端或通过电子邮件发送都不可行。于是他决定使用自己最喜爱的存储介质——CD 光盘!
隔离是最好的安全手段,因此无论光盘上还剩多少空间,Bajtazar 在每张光盘上最多只写一个程序。为了在新电脑上方便地使用软件,Bajtazar 还决定不把程序拆分到多张光盘上,也就是说每个程序都以一整块的形式写在至多一张光盘上。
每个程序占用一定的空间,每张光盘也有自己的容量。显然,要把程序写到某张光盘上,程序占用的空间不能超过光盘容量。
Bajtazar 可能还没意识到,这样他也许无法搬走所有东西。请计算:在遵守他的规则的前提下,他最多能搬走多少个程序?
输入格式
- 第一行一个自然数
( ),表示程序数量。 - 第二行包含
个自然数 ( ),用单个空格分隔,表示各个程序的大小(字节)。 - 第三行一个自然数
( ),表示光盘数量。 - 第四行(也是最后一行)包含
个自然数 ( ),用单个空格分隔,表示各张光盘的容量(字节)。
输出格式
输出恰好一个整数——按 Bajtazar 的规则,最多能搬走的程序数量。
样例
样例 1(pro0a)
输入:
5
3 10 20 7 4
4
100 1 8 5输出:
3解释:Bajtazar 可以把第一个程序(占用 3 字节)放在第四张光盘(容量 5)上,把第四个程序(占用 7 字节)放在第三张光盘(容量 8)上,把第二个程序(占用 10 字节)放在第一张光盘(容量 100)上。
样例 2(pro0b)
输入:
3
42 34 21
4
9 20 18 7输出:
0解释:每个程序的大小都大于任何一张光盘的容量,所以一个程序都写不下。
其他样例
- pro0c:
, , , 。 - pro0d:
, , , 。 - pro0e:
, , , 。
数据范围与评分
你可以用几种更简单的变体来解决本题——某些测试组满足额外的限制。下表给出了当你的程序通过这些限制的测试时所能获得的分值(满分 100)。
| 额外限制 | 分值 |
|---|---|
| 45 | |
| 60 |