#3124. C-击鼓传花
C-击鼓传花
Background
班会课上,n 个同学围成一圈做游戏,顺时针编号 1 到 n。 每个同学手中写着一个非零整数 a_i。游戏开始时花在 1 号同学手中,然后按以下规则进行:
拿到花的同学,把自己手中的数作为"步数",把花传给对应的同学;
若 a_i > 0,从下一位同学开始顺时针数 a_i 个人(数到的人拿到花);
若 a_i < 0,从上一位同学开始逆时针数 |a_i| 个人; 拿到花的人如果以前从未拿过花,游戏继续;如果之前拿过一次,游戏立即结束。
数据保证游戏一定会在不超过 10⁶ 次传递内结束。
请求出:游戏结束时,花一共被传递了多少次,以及花在谁的手中。
Format
Input
第一行一个整数 n。 第二行 n 个整数 a_1, a_2, …, a_n。
Output
一行两个整数:传递次数、游戏结束时持花者的编号。
Samples
5
3 1 -2 4 2
3 1
样例说明
1 号 a=3,顺时针数 3 个:2、3、4,花传给 4 号(第 1 次);
4 号 a=4,顺时针数 4 个:5、1、2、3,花传给 3 号(第 2 次);
3 号 a=−2,逆时针数 2 个:2、1,花传回 1 号(第 3 次);
1 号以前拿过花,游戏结束。共传递 3 次,花在 1 号手中。
Limitation
1s, 1024KiB for each test case.
2 ≤ n ≤ 1000
−1000 ≤ a_i ≤ 1000 且 a_i ≠ 0
保证传递次数不超过 10⁶
相关
在下列比赛中: