设某银行有A、B两个业务窗口,且处理业务的速度不一样,其中A窗口处理速度是B窗口的2倍,即当A窗口每处理完2个顾客时,B窗口处理完1个顾客。给定到达银行的顾客序列,请按业务完成的顺序输出顾客序列。假定不考虑顾客先后到达的时间间隔,并且当不同窗口同时处理完2个顾客时,A窗口优先输出。
输入输出如下:
我使用的就是STL中的queue。
#include<iostream>
#include<queue>
using namespace std;
int main(){
queue<int> q1;
queue<int> q2;
int n,m;
cin>>n;
for(int i = 0;i < n;i ++){
cin>>m;
if(m%2!=0){
q1.push(m);
}else{
q2.push(m);
}
}
while(!q1.empty()||!q2.empty()){
if(!q1.empty()){
cout<<q1.front()<<" ";
q1.pop();
}
if(!q1.empty()){
cout<<q1.front()<<" ";
q1.pop();
}
if(!q2.empty()){
cout<<q2.front()<<" ";
q2.pop();
}
}
return 0;
}