打卡信奥刷题(131)用Scratch图形化工具信奥P9780 [普及组] [HUSTFC 2023] Azur Lane

[HUSTFC 2023] Azur Lane

题目描述

你是港区的一位指挥官,你可以通过培养指挥喵来增强舰队的实力,指挥喵由对应的喵箱培育。喵箱有 k k k 个等级,等级越高稀有度越高。你每天会获得若干个喵箱(至少一个),然后再使用 ‘‘一键放入’’ 将这些喵箱放到喵窝里进行培育。‘‘一键放入’’ 会优先放入稀有度更高的喵箱(即按照稀有度从高到低排序后依次放入),放入的喵箱会排在已放入喵箱的后面,在每天结束时系统会自动扣除与喵窝中喵箱数量相等的钱。最开始时你的喵窝里没有喵箱。

因为你非常懒,所以你会等 n n n 天后才把喵箱一起打开。在你 n n n 天后进入喵窝时,你看到了 m m m 个喵箱,用一个长度为 m m m 的序列 a a a 表示喵窝里按放入先后顺序排列的喵箱的等级。但是你已经忘了这 n n n 天里你每天获得了多少喵箱了,你甚至忘了 n n n 的值是多少,显然这有许多情况。你想知道,对于满足 1 ≤ n ≤ m 1 \leq n \leq m 1nm 的所有整数 n n n,在所有情况中,这 n n n 天总共扣除的钱数至少为多少?

输入格式

第一行包含两个整数 m   ( 1 ≤ m ≤ 1 0 6 ) m\ (1 \leq m \leq 10^6) m (1m106) k   ( 1 ≤ k ≤ 1 0 6 ) k\ (1 \leq k \leq 10^6) k (1k106),分别表示喵窝中喵箱的数量和喵箱的最高等级。

第二行包含 m m m 个整数 a 1 , a 2 , … , a m   ( 1 ≤ a i ≤ k ) a_{1}, a_{2}, \ldots, a_{m}\ (1 \leq a_i \leq k) a1,a2,,am (1aik),表示喵窝中排列着的喵箱的等级。

输出格式

输出一行用空格间隔的 m m m 个整数,其中第 i i i 个整数表示当 n = i n=i n=i 时在所有可能的情况下至少会扣除的钱数。如果没有合法的情况,请输出 − 1 -1 1

样例 #1

样例输入 #1

3 3
2 3 1

样例输出 #1

-1 4 6

样例 #2

样例输入 #2

8 4
3 2 4 2 1 2 3 2

样例输出 #2

-1 -1 -1 21 22 25 29 36

提示

样例一解释:

n = 1 n=1 n=1 时,无法在一天内获得这 3 3 3 个喵箱(第二个喵箱的等级大于第一个喵箱的等级,不符合 ``一键放入’’ 从高到低放入的原则),因此输出 − 1 -1 1

n = 2 n=2 n=2 时,第一天获得第一个喵箱,此时喵窝内有 1 1 1 个喵箱,当天花费为 1 1 1;第二天获得后两个喵箱,此时喵窝内有 3 3 3 个喵箱,当天花费为 3 3 3。因此总钱数为 4 4 4

n = 3 n=3 n=3 时,每天依次获得一个喵箱,总钱数为 1 + 2 + 3 = 6 1+2+3=6 1+2+3=6

Scratch实现

在这里插入图片描述

后续

接下来我会不断用scratch来实现信奥比赛中的算法题、Scratch考级编程题实现、白名单赛事考题实现,感兴趣的请关注,我后续将继续分享相关内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值