某公司为新用户推出大礼包,用户从任意一天注册后,可以连续登录x天并领取金币。金币数量与一年中n个月的日历相关,每个月第一天得1个金币,第二天得2个金币,以此类推。输入包含月数n和连续登录天数x,以及每个月的天数d1,d2,…,dn。要求计算用户在注册后连续登录x天,最多可以获得的金币总数,且连续登录可能跨年。
塔子哥希望找到连续 x 天内可以获得最多金币的方案。为了实现这一目标,我们的日历数据是一个长度为 n 的数组 d,其中每个元素表示每个月的天数。由于塔子哥可以跨越到下一年的第一个月,因此我们需要考虑跨年情况。为了解决这个问题,我们采用了以下思路:
d 复制一份,形成一个长度为 2n 的数组。这一做法确保我们可以在任何地方找到长度为 x 的连续天数,并且能够平滑地处理跨年情况。某公司为新用户提供了一份登录大礼包。用户在新注册的前 x 天,系统每天发放若干金币,发放规则与该公司新设计的虚假世界日历有关。
在这份虚假世界日历中,一年由 n 个月组成,第 i 个月有 di 天。所有年份的月份数和每个月的天数都相同。对于某一月份中的第 k 天,用户当天能获得 k 枚金币;也就是每个月的第 1 天获得 1 枚金币,第 2 天获得 2 枚金币,后面依此类推。
给定 n、每个月的天数 di 以及需要连续登录的天数 x。用户可以自由选择注册日期。请计算最多能获得的金币总数。
约束条件:
开通会员即可查看完整视频题解: 1.题目讲解 2.思路分析 3.逐行代码手写
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.