#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param tickets int整型一维数组 
# @param k int整型 
# @return int整型
#
class Solution:
    def timeRequiredToBuy(self , tickets: List[int], k: int) -> int:
        # write code here
        #记录消耗总时间
        sum_time=0

        for i in range(len(tickets)):
            #排在k之前的人
            if(i<=k):
                #所耗时间为i与k中取票数最少的
                sum_time+=min(tickets[i],tickets[k]) 
            #排在k之后的人
            else:
                #如果i取票数小于k,则经历多轮后,i早就取完了,所耗时间为tickets[i]
                if tickets[i]<tickets[k]:
                    sum_time+=tickets[i]
                #反之,则为tickets[k],又因k取完后就不计时了,所以其后面的人少取1轮要-1
                else:
                    sum_time+=tickets[k]-1    
        return sum_time