#SLT10A. 2026年S组模拟赛10连测第10场-T1 零钱包
2026年S组模拟赛10连测第10场-T1 零钱包
| 项目 | 内容 |
|---|---|
| 输入文件名 | coins.in |
| 输出文件名 | coins.out |
| 可执行文件名 | coins |
| 每个测试点时限 | 1.0 秒 |
| 内存限制 | 512 MiB |
| 测试点数目 | 20 |
| 是否等分 | 是 |
结果比较方式为全文比较(过滤行末空格及文末换行)。
题目描述
程老师的零钱包里只有五种硬币,面额分别是 元、 元、 元、 元、 元。出门摆摊前,每种面额各带多少枚是定好的,记在账本上: 元硬币 枚、 元硬币 枚、 元硬币 枚、 元硬币 枚、 元硬币 枚。
每来一笔生意,程老师要从零钱包里取出若干枚硬币,凑出恰好等于货款 元的金额交给顾客。付钱的规矩只有一条:从最大的面额开始,每种面额尽可能多取。具体地说,先看 元面额,在不超过当前剩余待凑金额、也不超过钱包里该面额现有枚数的前提下,能取几枚就取几枚;扣掉这些硬币后,再看 元面额,同样尽可能多取;接着依次是 元、 元、 元。若这一轮取完,取出的硬币总额恰好是 元,这笔生意就成交,这些硬币从此不再放回钱包;若凑不出正好 元,这笔生意就不成交,刚才取出的硬币全部放回钱包,钱包恢复成这笔生意开始前的样子。
一天的生意按时间顺序记在流水本上,一共 笔。请按流水本的顺序逐笔处理,算出其中有多少笔生意能够成交。
输入格式
从文件 coins.in 中读入数据。
- 第一行五个整数 ,依次表示 元、 元、 元、 元、 元硬币的枚数;
- 第二行一个整数 ,表示流水本上生意的笔数;
- 第三行 个整数 ,依次表示每笔生意的货款。
输出格式
输出到文件 coins.out 中。
- 输出一行一个整数,表示成交的生意笔数。
样例
3 1 1 0 0
3
16 3 20
1
样例 1 解释
钱包里是 元 枚、 元 枚、 元 枚。
第一笔货款 元:先看 元,取不了;再看 元,取不了;再看 元,可取 枚,剩 元;再看 元,可取 枚,剩 元;最后 元取 枚,正好取完。成交,钱包变成 元 枚、 元 枚、 元 枚。
第二笔货款 元: 元及以上面额都取不了, 元只有 枚,取出后还差 元,不成交,硬币放回,钱包不变。
第三笔货款 元: 元、 元都已取光, 元 枚也不够,不成交。
三笔中成交一笔。
0 2 0 0 0
2
10 7
1
样例 2 解释
钱包里只有 元硬币 枚。第一笔货款 元, 元面额可取 枚,正好取完,成交;此后钱包为空。第二笔货款 元,钱包里没有硬币可取,不成交。
5 0 0 3 1
1
60
0
样例 3 解释
第一笔货款 元: 元面额可取 枚,剩 元; 元面额一枚也取不了(取一枚就是 元,超过剩下的 元); 元面额没有硬币; 元面额没有硬币; 元面额有 枚,全部取出后仍差 元。凑不出正好 元,不成交。
数据范围
对于所有测试数据,保证:
- ;
- ;
- 。
各测试点的约束如下:
| 测试点 | 特殊性质 | ||
|---|---|---|---|
| 无 | |||
| A | |||
| B |
- 特殊性质 A:,即钱包里没有 元硬币;
- 特殊性质 B:所有 都是 的倍数。
- ID
- 3805
- 类型
- 传统题
- Time Limit
- 1000ms
- Memory Limit
- 512MiB
- 上传者