class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param tickets int整型vector 
     * @param k int整型 
     * @return int整型
     */
     //结果:重复某过程直到指定索引上的元素被移除,该过程是 
     //类似于排队买票,买多张票的人取走一张,然后到队尾继续排队,只要一张票的人买到了就可以直接走,题目要的是指定人买完票所需的时间
    //解题方法:tickets表示每个人票数,k表示指定的下标
    int timeRequiredToBuy(vector<int>& tickets, int k) {
        // write code here
        int time = 0;
        queue<int> q;
        int n = tickets.size();
        for (int i = 0; i < n; i++){
            q.push(i);
        }
        while(!q.empty()) {
            int cur = q.front();
            q.pop();//取出
            time++;
            if ( tickets[cur] == 1){
                if( cur == k){
                    return time;
                }
                
            }else{
                tickets[cur]--;
                q.push(cur);
            }
        }
        return 0;
    }
};