C++礼物兑换

本文介绍了一个关于信息学竞赛的问题,参赛者小Z获得了一叠礼物兑换券,需要按照规则兑换礼物。规则包括兑换券使用顺序、面额与礼物价格的关系等。通过模拟算法,可以计算出小Z最多能兑换多少个礼物。文章提供了输入输出样例及解题思路,以及AC代码。
摘要由CSDN通过智能技术生成

礼物兑换

题目描述
小Z参加了全国小学生信息学比赛并获得了金奖,金奖的获得者会获得一叠礼物兑换券作为奖励,这叠兑换券一共有n张,从上到下编号为1到n,而且每张兑换券上有一个数字pi表示这个兑换券的面额.拿着兑换券就可以到礼物兑换屋兑换礼物了,小科拿着这叠兑换券高兴的来到了礼物屋,礼物屋里一共有m个礼物,所有的礼物按照编号1到m从左到右的顺序摆好的,每个礼物上都有一个标价ci表示这个礼物的价格

礼物兑换也是有规则,兑换规则如下:

① 兑换券要从上往下一张张的使用,如果第i张兑换券没有被使用,则不能使用后面兑换券。

② 兑换礼物时,兑换券的面额要不小于所要兑换的礼物的价格

③ 一张兑换券只能使用一次兑换一个礼物,并且不找零,不能叠加使用。

④ 兑换礼物时也需要按照编号从1到m的顺序兑换,如果当前手里第i张兑换券的金额不足以兑换第j个礼物可以选择不对第j个礼物,可以去尝试兑换第j+1个礼物。如果第i张兑换券对话了第j个礼物,那么第i+1张兑换券只能从第j+1张兑换券开始尝试兑换。

例如 小Z手里有4张兑换券,从上到下面额依次为{5,3,4,6},礼物屋里有5个礼物,从左到右标价一次为{2,4,5,2,4}

第1张兑换券面额为5,第1个礼物的价格为2,可以兑换,第2张兑换券面额为3,而第2个礼物的价格为4,不能兑换,第3个礼物的价格为5也不能兑换,第4个礼物的价格为2可以兑换,第3张兑换券面额为4,第5个礼物的价格为4可以兑换,所以小Z一共兑换了3个礼物。

请你帮助小Z计算一下他最多能够兑换多少个礼物

输入格式
第一行,两个整数n和

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值