#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param tickets int整型一维数组 
# @param k int整型 
# @return int整型
#
class Solution:
    def timeRequiredToBuy(self , tickets: List[int], k: int) -> int:
#         # write code here
        cnt = 0
        n= len(tickets)
        # idx = [i for i in range(n)]
        idx = list(range(n))
        while 1:
            i = idx[0]    #队列队头所对应的ticket【】下标
            cnt += 1      #每进行一次循环比较,+1s
            if tickets[i] == 1:
                #若队列队头为下标k,同时tickets[k] 已经减到1,则可将tickets[k]从队列中移除,循环结束
                if idx[0] == k and tickets[k] == 1:
                    break
                idx.pop(0)
                tickets[i] =0 #移除只需将该位置元素设置为0,不进行pop()操作,保持tickets列表的原有位置
            else:
                tickets[i] -= 1
                idx.append(idx.pop(0))
        return cnt