给出了打印队列的规则,求关注任务多久后打印完成。
简单题,就按照模拟写的进行就行。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| #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; }
|
** 本文迁移自我的CSDN博客,格式可能有所偏差。 **