#635. 击鼓传花

击鼓传花

题目描述

n个孩子围成一圈在玩击鼓传花的游戏,老师负责击鼓,当鼓点结束,拿着花的孩子就要被淘汰出圈(此时鼓点也自动停止),然后下一个孩子接过花继续开始,此时鼓点会继续响起,依次淘汰,直到最后只留下一个孩子,就是胜利者。

有些孩子身手敏捷,很快就能把花传到下一个人手里,也有些孩子会在手里保留一阵子再传给下一个人,每个孩子保留花的时间是t[i]秒,假设花传递的过程不需要时间。

现在从1号孩子开始传递,输出最后的胜利者,以及淘汰的顺序?

注意:鼓点持续时间m,表示第 m+1m+1 秒停止,而花停留在手里的时间为 tit_iti+1t_i+1 秒时花已经到了下一个人手里。

例如:m=12t1=12m=12,t1=12 ,则第2个人被淘汰。

输入输出格式

输入格式:

第一行n和m,表示人数和鼓点持续时间 第二行n个数字,表示每个孩子保留花的时间 tit_i

输出格式:

第一行一个数字,表示最后的胜利者, 第二行n-1个数字,表示淘汰的顺序。

输入输出样例

5 12
3 7 9 1 4
4
3 2 5 1

样例1说明:

从1号开始,经过2号,鼓点过去10秒,第13秒结束时花在3号手里 继续从4号开始,经过5号、1号,鼓点过去8秒,第13秒结束时在2号手里 继续从4号开始,第13秒结束时在5号手里 继续从1号开始,第13秒结束时在1号手里 胜利者是4号,淘汰顺序为3 2 5 1

测试点

共10个测试点,每个10分。

测试限制:每个测试点时间限制1s,内存限制128M。

数据范围:

40%:2<=n<=1000,m<=100002<=n<=1000, m<=10000

60%:2<=n<=1000,m<=1092<=n<=1000, m<=10^9

100%:2<=n<=105,m<=1092<=n<=10^5, m<=10^9

所有的ti<=1000t_i<=1000