故事
“ 2016年?好吧。”玩具销售商希尔伯特抱怨道。他睁开眼睛,擦干沙拉酱从耳朵里滴了出来,吃了早晨的起司奶油。典范假期。不过,他现在需要去上班,并完成年度会计。
圣诞节是一年中非常丰收的时期,尤其是对他的销售而言。希尔伯特(Hilbert)确切地知道它是如何工作的:一个人走进商店,购买了他们提供的第一份礼物。他们为此付费并跑到另一家商店。在实践中,礼物实际上是什么并没有真正改变。价格也不要紧,前提是价格不要太高。这完全取决于圣诞节前的剩余时间-时间越短,客户的悔恨就越大,他们愿意支付的价格就越高。
希尔伯特所需要做的就是看他的手表-他马上就知道他的顾客可以花多少钱。他可以轻松地利用这一事实:他只是找到可以出售给特定客户的最昂贵的礼物,并将其提供给他们。直到现在,他才意识到自己去年忘记采用这种狡猾的策略。那会改变的!
尽管如此,希尔伯特想知道如果他实际上使用了他的宏伟计划,他的生意将会蓬勃发展。他设法将来商店的人的名单汇总在一起,但是他不确定自己可以为他们赚多少钱。
您的任务(TL; DR)
输入包括可用礼物价格的升序列表和客户预算的列表。预算清单的顺序与客户到达商店的顺序相同-条件是每个客户都愿意至少支付与前者相同的费用,这意味着预算也在不断增加。
对于每个客户,找到他们愿意支付的最昂贵的礼物,然后输出价格。如果预算内没有可用的礼物,则输出0。
-40%如果算法的渐近时间复杂度为O(n+m)(而不是琐碎的O(n*m)),那么您将获得字符奖励,其中n, m输入列表的长度在哪里。
这是代码高尔夫球,最短字节获胜。禁止出现标准漏洞。
例
输入:
1 2 2 2 5 7 10 20
1 1 2 3 6 6 15 21 21 22
输出:
1 0 2 2 5 2 10 20 7 0
这项任务是从本地编程比赛中提取的,由我翻译成英语。这是原始作业:https : //www.ksp.sk/ulohy/zadania/1131/