某公司日对新用户推出大礼包,从任意一天注册开始,连续登录x天,每天可以领取一定的金币,领取金币的数量与该公司新设计的虚假世界的日历相关,该日历一年有n个月,第i个月有di天,每一年都一样。在每个月第一天会得到1个金币,第天会得到2个金币币第三天会得到3个金币,后面次类推。 请计算新用户注册后连续登陆x天,最多可以获取多少金币。 请注意,连续登陆可能会跨年。
解答要求 时间限制:C/C++ 500ms,其他语言:1000ms
内存限制:C/C++ 256MB, 其他语言:512MB
某公司为新用户推出大礼包,用户从任意一天注册后,可以连续登录x天并领取金币。金币数量与一年中n个月的日历相关,每个月第一天得1个金币,第二天得2个金币,以此类推。输入包含月数n和连续登录天数x,以及每个月的天数d1,d2,…,dn。要求计算用户在注册后连续登录x天,最多可以获得的金币总数,且连续登录可能跨年。
塔子哥希望找到连续 x
天内可以获得最多金币的方案。为了实现这一目标,我们的日历数据是一个长度为 n
的数组 d
,其中每个元素表示每个月的天数。由于塔子哥可以跨越到下一年的第一个月,因此我们需要考虑跨年情况。为了解决这个问题,我们采用了以下思路:
d
复制一份,形成一个长度为 2n
的数组。这一做法确保我们可以在任何地方找到长度为 x
的连续天数,并且能够平滑地处理跨年情况。