F.A.Q
Hand In Hand
Online Acmers
Problem Archive
Realtime Judge Status
Authors Ranklist
 
     C/C++/Java Exams     
ACM Steps
Go to Job
Contest LiveCast
ICPC@China
Best Coder beta
VIP | STD Contests
    DIY | Web-DIY beta
Author ID 
Password 
 Register new ID

老虎机

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65535/102400 K (Java/Others)
Total Submission(s): 230    Accepted Submission(s): 52


Problem Description
“在赌场里,基本原则就是让他们玩下去以及让他们再来玩。他们玩得越久,他们会输的越多,最后,我们会得到一切。”
(摘自1995年的电影Casino)

你正在一家赌场的老虎机面前,你的手上共有$k$个游戏币。

当你每次按下老虎机的按钮时,它会随机地报出一个数字$d$,如果$d=0$,那么什么事情都不会发生;如果$d>0$,那么恭喜你,老虎机会吐给你$d$个游戏币;但是如果$d<0$,很不幸,你将需要支付给老虎机$-d$个游戏币。

这台老虎机的工作原理很简单,在老虎机内部有一个长度为$n$的序列$a[0],a[1],\dots,a[n-1]$,每当你按下按钮时,如果你手上共有$k$个游戏币,那么它报出的数字$d$就是$a[k\bmod n]$。

前几次赌博让你尝到了甜头,贪婪的欲望驱动着你不停地按下老虎机的按钮。当$d<0$且你支付不了那么多游戏币时,你宣告破产。请问在你破产的时候你一共按过多少次按钮呢?
 

Input
第一行包含一个正整数$T(1\leq T\leq 5000)$,表示测试数据的组数。

每组数据第一行包含两个正整数$n,k(1\leq n\leq 100000,1\leq k\leq 10^{18})$,表示序列长度以及你初始的游戏币数量。

第二行包含$n$个整数$a[0],a[1],\dots,a[n-1](-10^9\leq a[i]\leq 10^9)$。

输入数据保证所有数据中$n$的总和不超过$1000000$。
 

Output
对于每组数据输出一行一个整数,即你破产的时候你一共按过按钮的次数。如果你运气很好,永远都不会破产,请输出$-1$。
 

Sample Input
1 5 20 -1 -2 3 4 -5
 

Sample Output
5
 

Author
Claris
 

Source
 

Statistic | Submit | Discuss | Note
Hangzhou Dianzi University Online Judge 3.0
Copyright © 2005-2024 HDU ACM Team. All Rights Reserved.
Designer & Developer : Wang Rongtao LinLe GaoJie GanLu
Total 0.000000(s) query 1, Server time : 2024-11-22 16:41:14, Gzip enabled