UVa 12100 - Printer Queue(模拟)

给出了打印队列的规则,求关注任务多久后打印完成。

简单题,就按照模拟写的进行就行。

#include<iostream>
#include<vector>
using namespace std;
vector<int>queue;
int main(){
    int t;
    cin>>t;
    while(t--){
        int n,m,x,cnt=0;
        cin>>n>>m;
        
        while(n--){
            cin>>x;
            queue.push_back(x);
        }
        while(1){
            int i;
            for(i=0;i<queue.size();i++)
                if(queue[i]>queue[0]){
                    queue.push_back(queue[0]);
                    queue.erase(queue.begin());
                    if(m) m--;
                    else m=(int)queue.size()-1;
                    i=0;
                }
            if(i==queue.size()){
                queue.erase(queue.begin());
                cnt++;
                if(m) m--;
                else{
                    cout<<cnt<<endl;
                    break;
                }
            }
        }
        queue.clear();
    }
    return 0;
}


你可能感兴趣的:(uva)