主页 讨论版 问题 名次 状态 统计

请自觉遵守比赛规则,违者严惩,不接受求情!

问题 D: 佑香跑步

问题 D: 佑香跑步

时间限制:5000 ms 内存限制:256 MB
提交:0 解决:0
[ 提交][ 状态][ 讨论版]

题目描述

题目压缩包(内含样例)

晄輪大祭的赛场上,佑香可以通过跑圈获得奖励。

具体来说是这样:Sil老师会先扔出一枚骰子,然后佑香就会前进等同于骰子点数的格数。有些格子上面有物品奖励,停在上面时会获得对应的物品奖励,而有的格子上面有奖励步数,停在上面时会再额外前进等同于奖励步数的格数。很显然,想要获得更多的奖励,就需要尽可能多的停留在格子上,而想要更快地跑完一圈则相反。

由于某些原因,晄輪大祭的赛场临时进行了调整,调整后的赛道一圈一共有$n$格,而Sil老师的骰子也被换成了一个$m$面的骰子,这个骰子能够投出$1,2,...,m$的数值。临时的变故使得Sil老师需要重新思考奖励的获取问题,但他去打Goz总力去了所以没空思考这个问题,而赛场上的佑香在跑了50圈之后也无力思考这个问题,所以你需要帮助Sil计算:跑完这个新赛道的一圈,最多可以扔多少次骰子?最少需要扔多少次骰子?

输入

第一行两个整数$n,m,(1\le n,m \le 10^6)$,含义如题所示。

第二行$n$个整数$a_1...a_n,(0\le a_i\le n-i)$,$a_i=0$表示第$i$个格子是个物品奖励格,否则表示停在这格上时会额外前进$a_i$格。

输出

一行两个整数,分别表示跑完一圈最多需要丢骰子的次数和最少需要丢骰子的次数。

提示

佑香初始时在第$0$格,前进到第$n$及之后的格子时就算跑完一圈。

[ 提交][ 状态][ 讨论版]
Baidu
map